626
צפיות
צפיות
29
תשובות
תשובות
שאלה קלה…
אני רוצה לעשות טופס שאחרי ממלאים אותו אז מה שרשמו ילך לדטא בייס, אז את הטופס בHTML בניתי בשנייה אבל עם הASP יש בעייה –
תגידו לי עם הקוד הזה טוב(עם יש בו טעויות)
<%
Set MyConn = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("db.mdb")
MyConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
SQL_query = "INSERT INTO gustbook (name,site,text,sitename) VALUES ('qqq','sss','ggg','ddd')"
Set RS = MyConn.Execute(SQL_query)
WHILE NOT RS.EOF
%>
ועם הוא טוב אז אני רוצה לדעת מה עושים כדי שבמקום המילה שבקוד יהייה מה שרושמים בתופס (איך מכניסים את response.write request.querystring("name") לקוד..)
29 תשובות
ככה
SQL_query = "INSERT INTO gustbook (name,site,text,sitename) VALUES ("&Request.QueryString("name")&",'sss','ggg','ddd')"
תודה אבל יש בעייה
Microsoft VBScript compilation error '800a0401'
Expected end of statement
/webuild1/addafter.asp, line 5
SQL_query = "INSERT INTO gustbook (name,site,text,sitename) VALUES ("&Request.QueryString("name")&","&Request.QueryString("site")&","&Request.QueryString("text")&","&Request.QueryString("sitename")&")"
——————————————————————————————–^
מה אומרת השגיאה הזאת ומה אני צריך לתקן?
request.form לא querystring
זה נותן לי בידיוק את אותה שגיאה..
מה צריך לסדר?
תעשה ככה
ורק שתידע אתה בכלל לא צריך פה רקורדסט, כי אפשר להצהיר על שאילתות sql עם execute.
<%
Dim objConn, ConnString, SQL_query
Set objConn = Server.CreateObject("ADODB.Connection")
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("data.mdb") & ";"
objConn.open ConnString
SQL_query = "INSERT INTO gustbook (name,site,text,sitename) VALUES ('" & request.form("name") & "','" & request.form("site") & "','" & request.form("text") & "','" & request.form("sitename") & "')"
objConn.execute(SQL_query)
%>
* שיניתי לך את החיבור למסד נתונים כי OLEDB יותר טוב מODBC – יותר מהיר, יותר יעיל ויותר מאובטח.
הקוד שנתתי לך אמור לעבוד,
בהצלחה
יש בעייה
עכשיו אחרי שממלאים את הטופס זה עושה בכאילו הדף לא נמצא..
עם אתה רוצה לראות, אז הנה קישור http://i.1asphost.com/webuild1/index.asp
יש דף ADD.ASP עם הטופס ויש addafter.asp עם הקוד הזה
<%
Dim objConn, ConnString, SQL_query
Set objConn = Server.CreateObject("ADODB.Connection")
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db.mdb") & ";"
objConn.open ConnString
SQL_query = "INSERT INTO gustbook (name,site,text,sitename) VALUES ('" & request.form("name") & "','" & request.form("site") & "','" & request.form("text") & "','" & request.form("sitename") & "')"
objConn.execute(SQL_query)
%>
זה כל מה שיש בדף, אולי צריך עוד משהו?
[ללא נושא]
כמה דברים..
1. השגיאה שלך אומרת שיש בעיה בתחביר הinsert, אז תדפיס את השאילתה, כך:
response.write SQL_query
2. אל תשכח לסגור ולשחרר חיבורים:
objConn.close
objConn = nothing
3. תבדוק שלא טעית בשמות השדות ובqsים.
אבל
איפה אני שם את זה?
response.write SQL_query
שים את זה מיד אחרי שאילתת הinsert
ותראה לנו את פלט ההדפסה כדי שננסה לעזור
תראה אני רק מתחיל..
לא ממש הבנתי מזתומרת "שים את זה מיד אחרי שאילתת הinsert"
אז ניסיתי הכל… אבל לא הצלחתי, אתה יכול יותר להסביר?
אוקיי שני דברים
1) ככה נראה הדף
sql_query=insert bla bla bla
כאן אתה רושם את ה
RESPONSE.WRITE sql_query
ותראה לנו את מה שיוצא
2) אני לא מציע לך לעשות ככה…
בגלל שאתה מתחיל תלמד קודם איך עובדים עם רקורדסט
אחר כך תלמד JS (אל תעשה את הטעות שאני עשיתי) ואז אם אתה עדיין רוצה
תלמד SQL כי רקורדסט הוא הכלי הכי טוב למתחילים
וSQL (לפי דעתי) הוא הכלי הכי קשה למתחילים
אז תקשיב לי… תלמד קצת על הרקורדסט ואז תעבור לכלים הקשים יותר
מקווה שעזרתי נועם צברי
ניסיתי לא עובד
אתה יכול להביא לי את הקוד המלא כי יכול להיות שלא שמתי את הקוד במקום הנכון?
לפי מה שאמרתה זה הייה צריך להיות ככה:
<%
Dim objConn, ConnString, SQL_query
Set objConn = Server.CreateObject("ADODB.Connection")
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db.mdb") & ";"
objConn.open ConnString
SQL_query = "INSERT INTO gustbook (name,site,text,sitename) VALUES ('" & request.form("name") & "','" & request.form("site") & "','" & request.form("text") & "','" & request.form("sitename") & "')"
RESPONSE.WRITE sql_query
objConn.execute(SQL_query)
%>
אבל זה לא עובד, וניסיתי עוד מלא דברים…
זה לא אמור לעבוד
זה אמור להראות לנו אם הוא מקבל את כל הפרטים שהוא צריך.
תעשה את זה שוב, ותגיד לנו מה אתה רואה.
זה רושם ככה
INSERT INTO gustbook (name,site,text,sitename) VALUES ('ליאור','www.Webuild.tk','בלה בלה','Webuild')
ו.. מי שרוצה לראות לבד:
http://i.1asphost.com/webuild1/index.asp
הinsert בסדר גמור.
מה השגיאה עכשיו?
איזה שגיאה?
עכשיו אין שגיאה זה פשוט לא עושה מה שאני צריך,
במקום לשים בדטה בייס זה מראה לי את זה בדף..
תעשה טובה לכולנו ובמיוחד לך
ותעבור על מדריך ה-ASP באתר ולאחר מכן על מדריך ה-SQL
כבר עברתי עליהם….
עם מישהו מוכן לעזור זה יהייה טוב..
name ו- text הן מילים שמורות
תעשה כך:
INSERT INTO gustbook ([name],site,[text],sitename) VALUES ('" & request.form("name") & "','" & request.form("site") & "','" & request.form("text") & "','" & request.form("sitename") & "')
מילים שמורות צריך להתחום בסוגריים מרובעים.
*לתחום
וואי תודה!
סוף סוף זה עובד!!
משהו בקשר לזה!!
טל,
name זה לא מילה שמורה.
במסד יש לי את המילה name וכשאני עושה הופה למסד על NAME זה לא מציג לי שוםם שגיאה ומוסיף את זה חלק…
לא תחמתי את זה בסוגרים זה פשוט עובד ככה…
אז מי יכול לומר לי למה אצלי זה עובד טוב ואצלו לא עבד בלי סוגרים??
אני חושב שהיא כן מילה שמורה, אבל
אין חכם כבעל ניסיון
בכל אופן, במידה ותוחמים מילה שהיא לא שמורה בסוגריים מרובעים זה בסדר. ולכן גם אם name היא לא מילה שמורה ותחמת אותה בסוגריים זה בסדר. זה לא משפיע על עיבוד הקוד. אבל בגלל ש- text היא מילה שמורה, זה פתר לו את הבעייה.
תאורטית, הוא גם יכל לעשות ככה:
INSERT INTO gustbook ([name],[site],[text],[sitename]) VALUES ('" & request.form("name") & "','" & request.form("site") & "','" & request.form("text") & "','" & request.form("sitename") & "')
והקוד בכל זאת היה עובד…
תודה רבה! למדתי משהו חדש מבעל נסיון
=========שאלה חדשה=========
אני רוצה לעשות שאים השאירו משהו בטופס ריק אז זה יקפיץ הודעה בALRET מתי שלוחצים על הכפתור
איך עושים את זה?
להבא תשאל בפורום צד לקוח
אבל עושים זאת כך:
<FORM name="search_org" ACTION="result_org.asp" METHOD="post" onsubmit="return CheckForm()">
<INPUT TYPE="text" NAME="subj">
<INPUT TYPE="submit" value="שלח">
</FORM>
<script language="javascript">
function CheckForm()
{
var frm = document.search_org;
if(frm.subj.value=="")
{
alert(' אנא הכנס ערך כלשהו');
frm.subj.focus();
return false;
}
return true;
}
</script>