שלח תשובה

זירת השאלות

547
צפיות
7
תשובות

שאלה

,‏ 14 בפברואר, 2005

כתבתי את הקוד הבא:


if request.cookies("gclub")("username")="" then
userenter="אורח"
else
userenter=request.cookies("gclub")("username")
end if

sqle="select entern,ip,user,date,enter from enterlist where ip='"&request.servervariables("remote_addr")&"' and date="&date()&" and user='"&userenter&"'"
Set rse = Server.CreateObject("ADODB.Recordset")
rse.open sqle,con2,3,3
if rse.EOF then

sqled = "SELECT user,ip,date,enter From enterlist"
Set rsed = Server.CreateObject("ADODB.Recordset")
rsed.open "enterlist", con2, 3, 3
rsed.AddNew
rsed("user")=userenter
rsed("ip") = request.servervariables("remote_addr")
rsed.Update
rsed.close
set rsed=nothing

else

Set rsp = Server.CreateObject("ADODB.Recordset")
rsp.open "enterlist where ip='"&request.servervariables("remote_addr")&"' and date="&date()&" and user='"&userenter&"'", con2, 3, 3
rsp("enter") = rsp("enter")+1
rsp.Update
rsp.close
set rsp=nothing

end if
rse.close
set rse=nothing


אבל הוא לא עושה מה שהוא אמור לעשות.
הקוד הזה אמור ליבדוק אם המשתמש ניכנס כבר היום לאתר ואם הוא ניכנס להוסיף בעמודה של enter +1 ואם הוא עדיין לא ניכנס אז הוא מוסיף שורה חדשה בטבלה של האיפי שלו, שם שמשתמש שאם הוא לא מחובר לאתר אז זה מוסיף בטבלה "אורח", ואת התאריך של היום שהוא ניכנס כדי שכל יום זה איבדוק.
עכשיו הבעיה היא שזה כל הזמן מוסיף שורה חדשה זה לא בודק אם הוא ניכנס היום אז זה יוסיף +1 לenter אלה כל הזמן זה מוסיף שורה חדשה של ip,user,date,enter מה יכולה להיות הבעיה שזה לא עושה את הפונקציה של הוספת +1 לenter?

תגיות:

7 תשובות

  1. somebody הגיב:

    טוב לא משנה הבנתי מה הבעיה
    אבל למה אי אפשר לעשות מישפט select אם יותר מ2 תנאים?
    שעשית כמו פה משפט select אם שלושה תנאים אזהוא לא פעל ביגלל זה תמיד זה עשה eof אבל ששניתי לשני תנאים מחקתי date מהתנאי אז זה פועל כמו שצריך.
    למה זה?

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

    כי date ואאל"ט גם יוזר הם מילים
    שמורות בSQL של אקסס(רק בשלו ?!).

    ומה שקורה כיוון שאקסס מבוסס על VBA אפשר לקרוא לרוב הפונקציות שלו ע"י כתיבתם ללא ה-()  ולכן בעצם נותר לך תנאי שלא מתקיים.
    כך אני מעריך

  3. somebody הגיב:

    זאת גם לא הבעיה….
    עכשיו שהורדיתי את הuser משאילתת הselect והצבתי בימקומו את משתנה הdate() אז זה כול פעם עושה לי שורה חדשה.
    למה זה?
    מה אי אפשר לעשות בשאילתת select משתנה date()?
    אם אי אפשר מה ניתן לעשות כדי שהשאילתה תיתיחס לשמתמשים שניכנסו היום ולא שתוסיף +1 לenter למשתמש שניכנס אתמול נגיד והיום זאת רק כניסה ראשונה שלו?
    תודה לכל העוזרים
    מצטער על כל בילבולי המוח….

  4. somebody הגיב:

    לא זה לא זה ניסיתי גם לשנות את השם
    של השדה לedate ולשים את הdate בוגריים ריבועיים אאבל לום לא הולך.

  5. somebody הגיב:

    לא הקפתי בכלום וזה פעל..
    רשמתי ככה:


    sql="selset ………………………. where …… and edate=Date()

    (הנקודות זאת אומרת שכתוב בין לבין דברים..)

שלח תשובה