542
צפיות
צפיות
35
תשובות
תשובות
פורום רקורסיבי
לא עובד לי האפשרות של הדפים (יענו דף 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 תשובות
תדפיס את השאילתא
ותראה לנו את הפלט
מה זה יעזור ?
זה סך הכול יראה את כל ההודעות…….
הבעיה היא ב ORDER BY של הדפים האחרים
כלומר הבעיה היא בסידור של ההודעות לדפים השונים
הוא התכוון
שתכניס את השאילה למשתנה ותדפיס אותו..
ותאמין לי זה עוזר המון!
בברכה, אלברט
*שאילתה
אלברט…..
לא הבנתי…… איך להציג אותה, ככה
fd="select * from blabla"
response.write(fd)
פעם ראשונה (ואני בטוח שלא אחרונה) שאני שומע על הדפסת שאילתה…..
בדיוק
הרעיון שעומד מאחורי זה
שלנו יותר קל לראות את השאילתא עצמה לעומת משתנה שמכיל מאת מחרוזת השאילתא ומשורשרים אליו 20,000 משתנים
וכך נוכן לכוון אותך יותר מהר
אההה…..
אוקי דוקי (חניבעל) אבל זה של הדף השני איפה שהאורדר ביי לא עובד
אז הנה
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
כמו שחשבתי 😛
(שתיקנתי את המאמר זה גם היה לי:
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
את הסוגר סוגריים המודגש באדום תוריד מהשאילתא ואז היא צעבוד
אהה אוקיי ועוד משהו
מספר שאלות:
1) איך אני יכול להוסיף פרמטר להוספת תגובה כלומר
זה כל הקישור הרגיל
http://localhost/Forum3/addMess.asp?id=137&rootId=137
אני רוצה להוסיף לו fid
איך אני עושה את זה ?
2) איך אני עושה שליד ההודעה יהיה רשום השם משתמש
קראתי לו מהמסד אבל בשורת הסטטוס מופיע לי
http://localhost/Forum3/user.asp?usersid=נועם
ואני רוצה שזה יופיע לי לפי מספרים אבל שהשם של הכותב יופיע ליד ההודעה ככה: נועם
איך ?
הקפץ
עזרה……. מישהו
כך
אתה פשוט מוסיף ללינק של הוספת הודעה את מה שאתה רוצה :-/
2. עליך לשלוף את המספר של המשתמש ולשים אותו בקישור
כנס שנייה
כלומר ככה
&fId=" +recArray[index+6]+
ובקשר לשאלה שנייה
אבל איך אני אפנה למספר שלו ?
ז"א המספר שלו נמצא הטבלת היוזרים
ומה אני צריך לשלוף שני דברים שונים כלומר את המספר ואת השם משתמש
או שיש פונקציה כלשהיא……..
תודה מראש נועם צברי
כן משהו כזה
מהו השדה הזר שנמצא בטבלת הפורום ומהו המפתח הראשי בטבלת היוזרים ?
שדה זר ?
רגע נראה לי שהבנתי אני צריך לעשות קשר גומלין בין EDITOR שבפורום
ל ID (מפתח ראשי) בשטבלת היוזרים
ככה לעשות או מה ?
הקפץ+
שאלה
עשיתי דבר כזה
<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
תודה מראש נועם צברי
אני עשיתי חלוקה לעמ' בצורה אחרת…
לגמרי…!
אני עובד עם ADO, אם אתה רוצה עזרה תגיד.
תודה אבל זה לא חלוקה לדפים
זה מערכת ניהול משתמשים
במקום לעשות קישורים לכל דבר אני פשוט עושה תיבת SELECT
ובשינויים אני משתמש ב SELECT CASE
OK 🙂 בהצלחה!
נסה להחליף
את se.value ב-this.value.
כלומר ככה:
<select name="se" onChange="location.href='/mem/Users.asp?id=<%=Rs.fields("ID")%>&Action='+this.value">
בטבלת הפורום אתה צריך לשים
שדה editorId שהוא יהיה בקשר גומלין עם ID שבטבלת היוזרים
ואז אתה עושה שאילתת JOIN כדי להוסיף את שם המשתמש ואת ה-ID אתה מוסיף מתוך הטבלה של הפורום
אוקיי אני אנסה + שאלה
עשיתי דבר כזה ולא פעל……
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
תודה מראש נועם צברי
הקפץ
הגדר לא פעל
יש שגיאה אומ משהו ?
לא זה פשוט לא עושה כלום…..
ויש יוזר עם 4 בשדה ID ?
נסה לעשות את ה-DELETE
כן ניסיתי הכול ולא פועל ………
הנה שוב הקוד עם קצת שינויים ……
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 ?
בקשר לשני
תשתמש ב-SESSION
בקשר לראשון אז זה לא "עובד" כי זה באמת עובד 😐
אין לך משתנה ID ולכן הוא נחשב ריק ולכן הקוד שנמצא ב-IF לא יתבצע
עם הראשון הסתדרתי אבל
עם השני לא ….
מה זאת אומרת SESSION מה לעשות
אם אתה מתכוון שלא יוכלו לניכנס לדף כבר ניסיתי את זה
עשיתי שרק מנהלים יוכלו להיכנס ובכל זאת הכנסתי בשורת הכתובת את זה
http://127.0.0.1/mem/Users.asp?action=delete&id=13
ועדיין זה מוחק את הרשומה
אולי יש דרך אחרת כלומר אולי עם
Session.SessionID
תעשה בדיקה בעמוד הזה
אם קיים הסיישן של הניהול ותבדוק שגם המשתמש הגיע מהדף של הניהול ע"י ServerVariables
איך אפשר לבדוק..
מאיפה הוא הגיע?
…
Request.ServerVariables("HTTP_REFERER")
לא בטוח באיות של המשתנה – תסתכל ב-FAQ של מדור ASP
הנה ככה
request.ServerVariables("HTTP_REFERER")
ואיך אני בודק ? משווה ככה
request.ServerVariables("HTTP_REFERER") <> "/mem/Defult.asp"then