שלח תשובה

זירת השאלות

626
צפיות
29
תשובות

שאלה קלה…

,‏ 9 באוגוסט, 2004

אני רוצה לעשות טופס שאחרי ממלאים אותו אז מה שרשמו ילך לדטא בייס, אז את הטופס ב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 תשובות

  1. ככה

    SQL_query = "INSERT INTO gustbook (name,site,text,sitename) VALUES ("&Request.QueryString("name")&",'sss','ggg','ddd')"

  2. webuild הגיב:

    תודה אבל יש בעייה


    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")&")"
    ——————————————————————————————–^

    מה אומרת השגיאה הזאת ומה אני צריך לתקן?

  3. webuild הגיב:

    זה נותן לי בידיוק את אותה שגיאה..
    מה צריך לסדר?

  4. תעשה ככה
    ורק שתידע אתה בכלל לא צריך פה רקורדסט, כי אפשר להצהיר על שאילתות 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 – יותר מהיר, יותר יעיל ויותר מאובטח.

    הקוד שנתתי לך אמור לעבוד,
    בהצלחה

  5. webuild הגיב:

    יש בעייה
    עכשיו אחרי שממלאים את הטופס זה עושה בכאילו הדף לא נמצא..
    עם אתה רוצה לראות, אז הנה קישור 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)
    %>

    זה כל מה שיש בדף, אולי צריך עוד משהו?

  6. כמה דברים..
    1. השגיאה שלך אומרת שיש בעיה בתחביר הinsert, אז תדפיס את השאילתה, כך:

    response.write SQL_query

    2. אל תשכח לסגור ולשחרר חיבורים:

    objConn.close
    objConn = nothing

    3. תבדוק שלא טעית בשמות השדות ובqsים.

  7. webuild הגיב:

    אבל
    איפה אני שם את זה?
    response.write SQL_query

  8. שים את זה מיד אחרי שאילתת הinsert
    ותראה לנו את פלט ההדפסה כדי שננסה לעזור

  9. webuild הגיב:

    תראה אני רק מתחיל..
    לא ממש הבנתי מזתומרת "שים את זה מיד אחרי שאילתת הinsert"
    אז ניסיתי הכל… אבל לא הצלחתי, אתה יכול יותר להסביר?

  10. MasterMind הגיב:

    אוקיי שני דברים
    1) ככה נראה הדף

    sql_query=insert bla bla bla
    כאן אתה רושם את ה
    RESPONSE.WRITE sql_query

    ותראה לנו את מה שיוצא
    2) אני לא מציע לך לעשות ככה…
    בגלל שאתה מתחיל תלמד קודם איך עובדים עם רקורדסט
    אחר כך תלמד JS (אל תעשה את הטעות שאני עשיתי) ואז אם אתה עדיין רוצה
    תלמד SQL כי  רקורדסט הוא הכלי הכי טוב למתחילים
    וSQL (לפי דעתי) הוא הכלי הכי קשה למתחילים

    אז תקשיב לי… תלמד קצת על הרקורדסט ואז תעבור לכלים הקשים יותר
    מקווה שעזרתי   נועם צברי

  11. webuild הגיב:

    ניסיתי לא עובד
    אתה יכול להביא לי את הקוד המלא כי יכול להיות שלא שמתי את הקוד במקום הנכון?


    לפי מה שאמרתה זה הייה צריך להיות ככה:

    <%
    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)
    %>

    אבל זה לא עובד, וניסיתי עוד מלא דברים…

  12. זה לא אמור לעבוד
    זה אמור להראות לנו אם הוא מקבל את כל הפרטים שהוא צריך.
    תעשה את זה שוב, ותגיד לנו מה אתה רואה.

  13. webuild הגיב:

    זה רושם ככה


    INSERT INTO gustbook (name,site,text,sitename) VALUES ('ליאור','www.Webuild.tk','בלה בלה','Webuild')

  14. webuild הגיב:

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

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

    תעשה טובה לכולנו ובמיוחד לך
    ותעבור על מדריך ה-ASP באתר ולאחר מכן על מדריך ה-SQL

  16. webuild הגיב:

    כבר עברתי עליהם….
    עם מישהו מוכן לעזור זה יהייה טוב..

  17. name ו- text הן מילים שמורות
    תעשה כך:
    INSERT INTO gustbook ([name],site,[text],sitename) VALUES ('" & request.form("name") & "','" & request.form("site") & "','" & request.form("text") & "','" & request.form("sitename") & "')

    מילים שמורות צריך להתחום בסוגריים מרובעים.

  18. משהו בקשר לזה!!
    טל,
    name זה לא מילה שמורה.
    במסד יש לי את המילה name וכשאני עושה הופה למסד על NAME זה לא מציג לי שוםם שגיאה ומוסיף את זה חלק…
    לא תחמתי את זה בסוגרים זה פשוט עובד ככה…

    אז מי יכול לומר לי למה אצלי זה עובד טוב ואצלו לא עבד בלי סוגרים??

  19. אני חושב שהיא כן מילה שמורה, אבל
    אין חכם כבעל ניסיון
    בכל אופן, במידה ותוחמים מילה שהיא לא שמורה בסוגריים מרובעים זה בסדר. ולכן גם אם name היא לא מילה שמורה ותחמת אותה בסוגריים זה בסדר. זה לא משפיע על עיבוד הקוד. אבל בגלל ש- text היא מילה שמורה, זה פתר לו את הבעייה.
    תאורטית, הוא גם יכל לעשות ככה:
    INSERT INTO gustbook ([name],[site],[text],[sitename]) VALUES ('" & request.form("name") & "','" & request.form("site") & "','" & request.form("text") & "','" & request.form("sitename") & "')
    והקוד בכל זאת היה עובד…

  20. תודה רבה! למדתי משהו חדש מבעל נסיון

  21. webuild הגיב:

    =========שאלה חדשה=========
    אני רוצה לעשות שאים השאירו משהו בטופס ריק אז זה יקפיץ הודעה בALRET מתי שלוחצים על הכפתור

    איך עושים את זה?

  22. להבא תשאל בפורום צד לקוח
    אבל עושים זאת כך:

    <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>

שלח תשובה