צפיות
תשובות
בעיה בהצגת כתבה
היי,
אני בניתי עמוד שבו מוצגים מדטא בייס כותרת של כתבה שהיא בעצם קישור ולמטה תקציר הכתבה. הלכתי על הרעיון של נענע, ועשיתי שכשהיא ילחצו על כותרת שמוצגת כקישור, יכנסו לדף שבו מוצגת הכתבה המלאה. ואיך עשיתי את זה?
שמתי בדף שמציג את הכתבות והתקציר שלהם שתי שדות 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 תשובות
אז ככה:
קודם כל – לא צרפת את הקוד – צרפת את השגיאה פעמיים.
שנית – מיותר לעשות 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")()
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
%>
ולשפוי האחרון, לא האבתי כל-כך את מה שהצעת, אבל תודה בכל מקרה.
וכמעט שחכתי, סליחה
האא, וכמעט שחכתי.
אני תקנתי את המצב שיהיה לי יותר נוח ועשיתי 7 קבצים כאלו, לכל טבלה קובץ אחר.
זה חוסך עבודה. אבל השגיאה עדיין במקום
השגיאה בהודעה הראשונה
לא מתייחסת לקוד הזה. תן לנו שגיאה מעודכנת.
זאתי היא השגיאה המעודכנת
UP2
למה אף-אחד לא מגיב לי?
אולי כי אין שגיאה
ואף אחד לא חייב לך כלום.
סליחה
אויש, נו אולי תפסיקו להגיב פה "אף אחד לא חייב לך כלום" אני יודע!.
וסליחה על הטרחה אבל זאת היתה טעות שלי. אני מאוד מאוד מצטער
תביא את השגיאה…
ונוכל לעזור לך אבל אל תדרוש כלום כל אחד כאן נמצא כדי לעזור ולהיעזר ואם הוא לא רואה בנכון לעזור אז הוא לא יעזור.
יש לי עוד שאלה, בבקשה
יש לי עוד בעיה.
אני עושה שדה input מסוג hidden ובו הערך ID(מספור אוטומטי).
כשאני עושה Select * Form News Where ID=… אז הוא נותן לי שגיאה שהערך המוכנס לא שווה לסוג הטבלה(מספר למספור אוטומטי). מה אני עושה במקרה כזה?
תביא…
את כל השאילתא ואת השגיאה
כי ביקשתי שגיאה מעודכנת
ולא הראת כלום.
אין מצב שעל הקוד אתה מקבל את השגיאה .
אפשר בלי הקוד?
אני שיניתי עכשיו את כל הקוד, אין מצב שתוכלו לעזור לי בלי הקוד???
לא
כזבו את השגיאות הקודמות
או קיי,
עזבו את השגיאה הקודמת.
יש לי שגיאה חדשה:
הקוד:
<%
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
תודה מקרב לב לעוזרים
הסינטקס של WHERE הוא
SELECT * FROM tbl WHERE fldName=value
בשאילתה שלך חסר ה-fldName
תודה ילדה
וואלה?
איך יכולתי לשכוח את זה?
תודה רבה לך