שלח תשובה

זירת השאלות

694
צפיות
17
תשובות

בעיה בהצגת כתבה

,‏ 23 בפברואר, 2004

היי,
אני בניתי עמוד שבו מוצגים מדטא בייס כותרת של כתבה שהיא בעצם קישור ולמטה תקציר הכתבה. הלכתי על הרעיון של נענע, ועשיתי שכשהיא ילחצו על כותרת שמוצגת כקישור, יכנסו לדף שבו מוצגת הכתבה המלאה. ואיך עשיתי את זה?
שמתי בדף שמציג את הכתבות והתקציר שלהם שתי שדות input מסוג hidden שמכילות את הערך ID של הכתבה(בשביל שיהיה אפשר לבחור מהדטא בייס כתבה לפי האיידי שלה) ועוד שדה hidden שמכיל את הערך של השדה NameT בדטא בייס שלי ששם כתובה שם הטבלא של החדשות(יש כל מיני סוגים של חדשות, אז זה 7 טבלאות). הנתון של שם הטבלא מוכנס לדטא בייס כשכותבים את הכתבה ובוחרים לאיזה טבלה וסוג של חדשות להכניס אותה.
הבעיה היא כזאת: כשאני לוחץ על הקישור של הכותרת של הכתבה אני נכנס לדף שאמור להציג לי את הכתבה המלאה. אבל מופיעה לי שם השגיאה:


Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '* FROMWHERE ID="'.

/igal-alon/NewsView.asp, line 110



והקוד של העמוד הוא:


Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '* FROMWHERE ID="'.

/igal-alon/NewsView.asp, line 110



אני חשבתי לעשות שלכל סוג של חדשות יהיה עמוד הצגה משלו, ואז אני לא אצטרך את השדה שמציג את שם הטבלא. עכשיו, אני לא יודע תחליטו אתם.
ץודה לעוזרים.

תגיות:

17 תשובות

  1. אז ככה:
    קודם כל – לא צרפת את הקוד – צרפת את השגיאה פעמיים.

    שנית – מיותר לעשות 7 טבלאות שונות – היית פשוט מוסיף עמודה מטיפוס byte בה תיתן לכל סוג כתבה ערך 1-7 (אלא אם כן לכל סוג כתבה יש עמודות שונות לגמרי וזה זה כן מצדיק טבלאות שונות).

    דבר נוסף – ב-input משתמשים לטפסים. במידה ואתה רוצה להעביר עם לינק מידע – פשוט משתמשים ב-QueryString (או בקיצור – QS) בצורה הבאה:

    <a href="articles.asp?id=70&name=webmaster">WebMaster Article</a>

    * VBScript Reading Code:
    Request.QueryString("id")
    Request.QueryString("name")

    * JScript Reading Code:
    Request.QueryString("id")()
    Request.QueryString("name")()

  2. UP
    אז את השגיאה כבר ראיתם בהודעת המקור.
    והנה הקוד:


    <%
    set oConn=server.createobject("ADODB.connection")
    set RS=server.createobject("ADODB.recordset")
    oConn.open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/News.mdb")

    SQL="SELECT * FROM News WHERE ID='" & request.form("NewsID") & "'"

    RS.open RSQL, oConn, 3

    response.write "<h1>"
    response.write RS("msgTitle")
    response.write "</h1><br>"
    response.write "<font size=3 color=gray>"
    response.write "<span dir=ltr>"
    response.write RS("msgTime") & " " & RS("msgName")
    response.write "<br>"
    response.write RS("msgFBody")
    response.write "</font><br>"
    response.write "<font color=white size=3>"
    response.write RS("msgBody")
    response.write "</font>"

    oConn.close

    %>


    ולשפוי האחרון, לא האבתי כל-כך את מה שהצעת, אבל תודה בכל מקרה.

  3. וכמעט שחכתי, סליחה
    האא, וכמעט שחכתי.
    אני תקנתי את המצב שיהיה לי יותר נוח ועשיתי 7 קבצים כאלו, לכל טבלה קובץ אחר.
    זה חוסך עבודה. אבל השגיאה עדיין במקום

  4. השגיאה בהודעה הראשונה
    לא מתייחסת לקוד הזה. תן לנו שגיאה מעודכנת.

  5. ניר טייב הגיב:

    אולי כי אין שגיאה
    ואף אחד לא חייב לך כלום.

  6. סליחה
    אויש, נו אולי תפסיקו להגיב פה "אף אחד לא חייב לך כלום" אני יודע!.
    וסליחה על הטרחה אבל זאת היתה טעות שלי. אני מאוד מאוד מצטער

  7. ניר טייב הגיב:

    תביא את השגיאה…
    ונוכל לעזור לך אבל אל תדרוש כלום כל אחד כאן נמצא כדי לעזור ולהיעזר ואם הוא לא רואה בנכון לעזור אז הוא לא יעזור.

  8. יש לי עוד שאלה, בבקשה
    יש לי עוד בעיה.
    אני עושה שדה input מסוג hidden ובו הערך ID(מספור אוטומטי).
    כשאני עושה Select * Form News Where ID=… אז הוא נותן לי שגיאה שהערך המוכנס לא שווה לסוג הטבלה(מספר למספור אוטומטי). מה אני עושה במקרה כזה?

  9. כי ביקשתי שגיאה מעודכנת
    ולא הראת כלום.
    אין מצב שעל הקוד הזה אתה מקבל את השגיאה הזו.

  10. אפשר בלי הקוד?
    אני שיניתי עכשיו את כל הקוד, אין מצב שתוכלו לעזור לי בלי הקוד???

  11. כזבו את השגיאות הקודמות
    או קיי,
    עזבו את השגיאה הקודמת.
    יש לי שגיאה חדשה:
    הקוד:


    <%
    set oConn=server.createobject("ADODB.connection")
    set RS=server.createobject("ADODB.recordset")

    oConn.open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/proccess.mdb")
    RSQL="SELECT * FROM TR WHERE='" & request.form("proccess") & "'"
    RS.open RSQL, oConn, 3

    response.write "<table border=1 bordercolor=blue cellpadding=0>"
    response.write "<tr>"
    response.write "<th>ùí îùúîù</th>"
    response.write "<th>ñéñîà</th>"
    response.write "<th>ùí äèåø</th>"
    response.write "</tr>"
    response.write "<tr><td>"
    response.write "<input type=Text name=UserName value=" & RS("UserName") & "size=20>"
    response.write "</td><td>"
    response.write "<input type=Text name=UserName value=" & RS("UserPassword") & "size=20>"
    response.write "</td><td>"
    response.write "<input type=Text name=NameTR value=" & RS("NameTR") & "size=20>"
    response.write "</td></tr>"
    response.write "</table>"
    oConn.close
    %>


    והשגיאה:


    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '='ðçé".

    /igal-alon/ProccessTR_View.asp, line 114


    תודה מקרב לב לעוזרים

  12. הסינטקס של WHERE הוא


    SELECT * FROM tbl WHERE fldName=value

    בשאילתה שלך חסר ה-fldName

  13. תודה ילדה
    וואלה?
    איך יכולתי לשכוח את זה?
    תודה רבה לך

שלח תשובה