שלח תשובה

זירת השאלות

542
צפיות
35
תשובות

פורום רקורסיבי

,‏ 9 ביולי, 2004

לא עובד לי האפשרות של הדפים (יענו  דף 1  דף 2  וכו')
הנה הקוד השנוי במחלוקת ….


rs.Open "SELECT forum.id, forum.parentId, forum.subject,forum.message,forum.rootId, forum.msgDate, forum.fid FROM forum WHERE forum.rootId in ("&subQuery&") AND forum.fid = "&cInt(Request.QueryString("fid"))&" ORDER BY forum.groupDate DESC ,forum.id", oConn

והנה הטעות


Microsoft JET Database Engine error '80040e14'

þþùâéàú úçáéø áôñå÷éú ORDER BY.

/forum3/forum.asp, line 38


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

תגיות:

35 תשובות

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

    תדפיס את השאילתא
    ותראה לנו את הפלט

  2. MasterMind הגיב:

    מה זה יעזור ?
    זה סך הכול יראה את כל ההודעות…….
    הבעיה היא ב ORDER BY של הדפים האחרים
    כלומר הבעיה היא בסידור של ההודעות לדפים השונים  

  3. albert הגיב:

    הוא התכוון
    שתכניס את השאילה למשתנה ותדפיס אותו..
    ותאמין לי זה עוזר המון!

    בברכה, אלברט

  4. MasterMind הגיב:

    אלברט…..
    לא הבנתי……  איך להציג אותה, ככה


    fd="select * from blabla"
    response.write(fd)

    פעם ראשונה (ואני בטוח שלא אחרונה) שאני שומע על הדפסת שאילתה…..

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

    הרעיון שעומד מאחורי זה
    שלנו יותר קל לראות את השאילתא עצמה לעומת משתנה שמכיל מאת מחרוזת השאילתא ומשורשרים אליו 20,000 משתנים
    וכך נוכן לכוון אותך יותר מהר

  6. MasterMind הגיב:

    אההה…..
    אוקי דוקי (חניבעל) אבל זה של הדף השני  איפה שהאורדר ביי לא עובד
    אז הנה


    SELECT forum.id, forum.parentId, forum.subject,forum.message,forum.rootId, forum.msgDate, forum.fid FROM forum WHERE forum.rootId in (SELECT TOP 15 fixedForum.rootID FROM fixedForum WHERE rootID not in ( SELECT TOP 15 fixedForum.rootId FROM fixedForum ORDER BY fixedForum.MaxmsgDate)) ORDER BY fixedForum.rootID DESC, fixedForum.MaxmsgDate DESC) AND forum.fid = 1 ORDER BY forum.groupDate DESC ,forum.id

    כלומר זאת הכתובת שלו


    http://localhost/forum3/forum.asp?fid=1&page=2

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

    כמו שחשבתי 😛
    (שתיקנתי את המאמר זה גם היה לי:

    SELECT forum.id, forum.parentId, forum.subject,forum.message,forum.rootId, forum.msgDate, forum.fid FROM forum WHERE forum.rootId in (SELECT TOP 15 fixedForum.rootID FROM fixedForum WHERE rootID not in ( SELECT TOP 15 fixedForum.rootId FROM fixedForum ORDER BY fixedForum.MaxmsgDate)) ORDER BY fixedForum.rootID DESC, fixedForum.MaxmsgDate DESC) AND forum.fid = 1 ORDER BY forum.groupDate DESC ,forum.id

    את הסוגר סוגריים המודגש באדום תוריד מהשאילתא ואז היא צעבוד

  8. MasterMind הגיב:

    אהה אוקיי ועוד משהו
    מספר שאלות:
    1) איך אני יכול להוסיף פרמטר להוספת תגובה כלומר
    זה כל הקישור הרגיל
    http://localhost/Forum3/addMess.asp?id=137&rootId=137
    אני רוצה להוסיף לו fid
    איך אני עושה את זה  ?
    2) איך אני עושה שליד ההודעה יהיה רשום השם משתמש
    קראתי לו מהמסד אבל בשורת הסטטוס מופיע לי

    http://localhost/Forum3/user.asp?usersid=נועם

    ואני רוצה שזה יופיע לי לפי מספרים אבל שהשם של הכותב יופיע ליד ההודעה ככה: נועם
    איך ?

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

    כך
    אתה פשוט מוסיף ללינק של הוספת הודעה את מה שאתה רוצה :-/

    2. עליך לשלוף את המספר של המשתמש ולשים אותו בקישור

  10. MasterMind הגיב:

    כנס שנייה
    כלומר  ככה

    &fId=" +recArray[index+6]+

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

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

    כן משהו כזה
    מהו השדה הזר שנמצא בטבלת הפורום ומהו המפתח הראשי בטבלת היוזרים ?

  12. MasterMind הגיב:

    שדה זר ?
    רגע  נראה לי שהבנתי  אני צריך לעשות קשר גומלין בין EDITOR שבפורום
    ל ID (מפתח ראשי) בשטבלת היוזרים
    ככה לעשות או מה ?

  13. MasterMind הגיב:

    הקפץ+שאלה
    עשיתי דבר כזה


    <select name="se" onChange="location.href='/mem/Users.asp?id=<%=Rs.fields("ID")%>&Action='+se.value">
    <%
    if Rs.fields("Sus") = false AND Rs.fields("Admin") = true then
    response.write("<OPTION value='User' >הפוך למשתמש </OPTION>")

    עכשיו כשאני לוחץ על הלחצן זה עובר לי לדף אחר אבל הוא לא מזהה את הפקודה כלומר הוא מציג לי לא ידוע , ככה


    http://localhost/mem/Users.asp?id=3&action=undefined

    תודה מראש   נועם צברי

  14. Just-Tal הגיב:

    אני עשיתי חלוקה לעמ' בצורה אחרת…
    לגמרי…!
    אני עובד עם ADO, אם אתה רוצה עזרה תגיד.

  15. MasterMind הגיב:

    תודה אבל זה לא חלוקה לדפים
    זה מערכת ניהול משתמשים
    במקום לעשות קישורים לכל דבר אני פשוט עושה תיבת SELECT
    ובשינויים אני משתמש ב SELECT CASE

  16. BuildHome הגיב:

    נסה להחליף
    את se.value ב-this.value.
    כלומר ככה:

    <select name="se" onChange="location.href='/mem/Users.asp?id=<%=Rs.fields("ID")%>&Action='+this.value">

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

    בטבלת הפורום אתה צריך לשים
    שדה editorId שהוא יהיה בקשר גומלין עם ID שבטבלת היוזרים
    ואז אתה עושה שאילתת JOIN כדי להוסיף את שם המשתמש ואת ה-ID אתה מוסיף מתוך הטבלה של הפורום

  18. MasterMind הגיב:

    אוקיי אני אנסה + שאלה
    עשיתי דבר כזה ולא פעל……

    IDstr = cInt(Request.QueryString("userid"))
    ACTION = Request.QueryString("Action")

        select Case ACTION
        Case "stop": SqlStr = "UPDATE Users SET Sus = true Where ID=" & IDstr
        Case "start": SqlStr = "UPDATE Users SET Sus = false Where ID=" & IDstr
        Case "Admin": SqlStr = "UPDATE Users SET Admin = true Where ID=" & IDstr
        Case "User": SqlStr = "UPDATE Users SET Admin = false Where ID=" & IDstr
        Case "delete": SqlStr= "DELETE * FROM Users Where ID =" & userid
        conn.Execute (SqlStr)
        End Select

    וזו שורת הכתובת


    http://localhost/mem/Users.asp?userid=4&Action=Start

    תודה  מראש   נועם צברי

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

    ויש יוזר עם 4 בשדה ID ?
    נסה לעשות את ה-DELETE

  20. MasterMind הגיב:

    כן ניסיתי הכול ולא פועל ………
    הנה שוב הקוד עם קצת שינויים ……


    IDstr = cInt(Request.QueryString("userid"))

    if not isempty(ID) then
        ACTION = Request.QueryString("Action")
        Set cn = server.CreateObject("ADODB.Connection")
        Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("db8.mdb") & ";Jet OLEDB:Database Password=*******"
        Select Case ACTION
        Case "stop": SQL = "UPDATE Users SET Sus = True Where ID=" & IDstr
        Case "start": SQL = "UPDATE Users SET Sus = False Where ID=" & IDstr
        Case "user": SQL = "UPDATE Users SET Admin = False Where ID=" & IDstr
        Case "Admin": SQL = "UPDATE Users SET Admin = True Where ID=" & IDstr
        Case "delete": SQL = "DELETE * FROM Users Where ID=" & IDstr
        
        End Select
        cn.Execute SQL
        cn.Close
        Set cn = nothing
    end if

    ועדיין לא פועל
    הנה החלק של ה SELECT ::


    <select name="se" onChange="location.href='/mem/Users.asp?userid=<%=Rs.fields("ID")%>&Action='+this.value">
    <OPTION SELECTED > – – – – – – – – – – – – – – – </OPTION>
    <%
    if Rs.fields("Sus") = false AND Rs.fields("Admin") = true then
    response.write("<OPTION value='User' >הפוך למשתמש </OPTION>")
    response.write("<OPTION value='Stop' > השעה משתמש </OPTION>")
    response.write("<OPTION value = 'Delete' > מחק משתמש </OPTION>")
    elseif Rs.fields("Sus") = true AND Rs.fields("Admin") = false then
    response.write("<OPTION value='Start'>  שחרר משתמש</OPTION>")    
    response.write("<OPTION value = 'Delete' > מחק משתמש </OPTION>")
    elseif Rs.fields("Sus") = false AND Rs.fields("Admin") = false then
    response.write("<OPTION value='Stop' > השעה משתמש </OPTION>")
    response.write("<OPTION value = 'Delete' > מחק משתמש </OPTION>")
    elseif Rs.fields("Sus") = false AND Rs.fields("Admin") = false then
    response.write("<OPTION value='Admin' > הפוך למנהל </OPTION>")
    response.write("<OPTION value='Stop' > השעה משתמש </OPTION>")
    response.write("<OPTION value = 'Delete' > מחק משתמש </OPTION>")
    End IF
    %>

    ועוד שאלה  אם אני רוצה להוסיף לזה KEY  כלומר אני לא רוצה שמשתמש יוכל
    להקיש את זה בשורת הכתובת והוא יהיה מנהל …
    איך עושים KEY עם HTML ENCODE ?

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

    בקשר לשני
    תשתמש ב-SESSION

    בקשר לראשון אז זה לא "עובד" כי זה באמת עובד 😐
    אין לך משתנה ID ולכן הוא נחשב ריק ולכן הקוד שנמצא ב-IF לא יתבצע

  22. MasterMind הגיב:

    עם הראשון הסתדרתי אבל
    עם השני לא ….
    מה זאת אומרת SESSION מה לעשות
    אם אתה מתכוון שלא יוכלו לניכנס לדף כבר ניסיתי את זה
    עשיתי שרק מנהלים יוכלו להיכנס  ובכל זאת הכנסתי בשורת הכתובת את זה


    http://127.0.0.1/mem/Users.asp?action=delete&id=13

    ועדיין זה מוחק את הרשומה
    אולי יש דרך אחרת כלומר אולי עם


    Session.SessionID

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

    תעשה בדיקה בעמוד הזה
    אם קיים הסיישן של הניהול ותבדוק שגם המשתמש הגיע מהדף של הניהול ע"י ServerVariables

  24. MasterMind הגיב:

    איך אפשר לבדוק..
    מאיפה הוא הגיע?

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




    Request.ServerVariables("HTTP_REFERER")

    לא בטוח באיות של המשתנה – תסתכל ב-FAQ של מדור ASP

  26. MasterMind הגיב:

    הנה ככה

    request.ServerVariables("HTTP_REFERER")

    ואיך אני בודק ? משווה ככה


    request.ServerVariables("HTTP_REFERER") <> "/mem/Defult.asp"then

שלח תשובה