שלח תשובה

זירת השאלות

609
צפיות
17
תשובות

התנאיות בASP

,‏ 21 במאי, 2005

היי,
אני מנסה ליצור תנאי בASP שיש בו כמה "and" וזה פשוט לא הולך….
אני חושבת שהבעיה היא ב"and" האחרון..
מישהו יודע מה אפשר לעשות…? זה די דחוף….
תודה

תגיות:

17 תשובות

  1. somebody הגיב:

    מספר דברים..
    קראי אך מציגים שאלה..
    וזה לא בפורום המתאים….
    פורום צד שרת זה הפורום שאת צריכה..

  2. BuildHome הגיב:

    להציג קוד רלוונטי, שגיאה….כרגיל..

  3. סיון הגיב:

    קוד של הASP
    חלק מהקוד מצורף. אין הודעת שגיאה, זה פשוט לא מראה כלום, כאילו לא קיימת רשומה כזו במסד הנתונים, למרות שקיימת. המשתנים מוגדרים נכון והבעיה היא לא איתם, כי אם אני שמה "or" במקום ה"and" האחרון זה עובד, אם אני מורידה את המשתנה האחרון (ושוב פעם יש רק and ) זה שוב לא מראה כלום, הוא מראה רק עם or (גם הרבה or) או עם and אחד…
    עזרה…..בבקשה…..

  4. BuildHome הגיב:

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

    הדפסת את המשתנים בצורה שניתן להשוות ביניהם, למשל:
    <%
    Response.Write azor&"="&rs("אזור")

    וכך לראות אם השווים באופן ויזואלי (להשוות ערכים).

  5. סיון הגיב:

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

  6. BuildHome הגיב:

    בעמוד עצמו
    למשל אם תבטלי את התנאי, המידע שנשלף מהמסד הוא בעברית?

    הקוד עצמו נראה די תקין…

    איך השוואת? לא ראיתי את הקוד של ההשואה שלך בקוד שצירפת.

  7. סיון הגיב:

    ההשוואה
    כשאני מבטלת את התנאי, אז המידע הוא בעברית.
    השוואתי בדף אחר, העתקתי את כל המשתנים ואת הקישור למסד והשוואתי ויצא שהכל בסדר…..
    אם אתה רוצה לראות את ההשוואה אז צרפתי את זה….
    בכל אופן, ממש תודה על העזרה(:

  8. BuildHome הגיב:

    בקוד השלם שלך
    הלולאה עובדת אם את מסירה את משפט התנאי? האם מוצגים כל הרשומות?
    ולמה את לא משתמשת בשאילתה שלמה (select…from…order by)?

    הקוד עצמו נראה לי תקין.

  9. סיון הגיב:

    אם אני מסירה את התנאי
    הלולאה עובדת ומחזירה את כל הרשומות.
    אני לא ממש מבינה בכל התנאים, ככה שאני לא מכירה את השאילתה שאתה מציע לי…
    אם בא לך להסביר לי, מה טוב (מאוד!)

  10. BuildHome הגיב:

    כנסי למדריך SQL
    באתר, הוא מסביר היטב כיצד לכתוב שאילתות שליפה, עדכון, מחיקה ועוד.

    אם יש בעיה, אנחנו כאן כדי לעזור

  11. סיון הגיב:

    מצאתי את הטעות!
    בדקתי שוב את כל הקוד…..
    הבעיה הייתה שלא היה rs ליד אחד המשתנים בתנאי….
    עכשיו זה עובד…..ושוב, תודה.

  12. סיון הגיב:

    לאחר מציאת הטעות, יש לי שאלה נוספת
    בניתי טופס ב html , עכשיו, אני רוצה ליצור מצב שאם לא כל השדות מלאים שיעשה
    "וגם" בין אלה שכן מלאים…אני כאילו צריכה לכתוב תנאי שאם כל משתנים שהם ="" אז שיעשה "וגם" בין אלה שמלאים….
    חיפשתי במדריך הsql ולא ראיתי משהו שדומה לזה…..

  13. סיון הגיב:

    תיקון קטן
    אני צריכה:  אם כל משתנים שהם="" וגם כל משתנים שהם=למשהו שמופיע בטבלא באקסס, אז שיהיה "וגם" בין מה שמופיע באקסס. כלומר, המשתנים הממולאים לא יהיו סתם: <>"", אלא מופיעים באקסס.

    אני חוששת שהשרשור שלי יהיה בקרוב הארוך מכולם…..

  14. BuildHome הגיב:

    לא הבנתי
    אנא נסי להסביר בצורה טובה יותר.

  15. סיון הגיב:

    הסבר טוב יותר…
    בניתי טופס בHTML שמכניסים בו נתונים, למשל אני רוצה בית בת"א וגם 5 חדרים וגם קומה 1 וגם בצפון העיר, ולפי מה שממלאים בטופס, מקבלים פלט של מה שמופיע באקסס ומתאים לנתונים שהכנסתי. מה שאני רוצה לעשות זה שאם לא ממלאים את כל השדות, שיהיה "וגם" בין כל שכן מילאתי, למשל אם לא מילאתי את שדה הקומה, אז שאני אקבל את כל הדירות בת"א, בצפון עם חמישה חדרים.
    בתנאי שבניתי יש רק and בין כל המשתנים, אז במקרה שאני ממלאת רק שני שדות בטופס, אז הוא לא מחזיר כלום, כי יש שדות ריקים(="") ובתנאי מוגדר שאם
    משתנה =("רשומה באקסס") אז שיציג את מה שמתאים.
    מה שאני צריכה כביכול זה פקודה שאומרת שאם יש משתנה/ים כלשהם בטופס שלא מולאו, כלומר ="", אז שיהיה "וגם" בין כאלה שכן מולאו  כלומר =("רשומה באקסס").
    אפשר כמובן לרשום בקוד את כל האפשרויות שיש, כלומר אם משתנה X="" אז לעשות וגם בין כל הארבעה ששוים לרשומה באקסס, אבל יש מאות צירופים וזה לא ממש ריאלי….

    מצטערת על האורך…..מקווה שזה באמת מסביר את מה שאני רוצה לעשות.

  16. BuildHome הגיב:

    נראה לי שהבנתי אותך
    כנסי למדור SQL ומדריך SQL באתר ותלמדי בנוגע לשאילתות שליפה עם WHERE.

    תצטרכי לעשות שאילתה הדומה לזו:
    SELECT [fields] FROM tbl WHERE [field1]='"&Request.Form("field1")&"' AND [field2]='"&Request.Form("field2")&"' AND [field3]='"&Request.Form("field3")&"' ORDER BY [field4] DESC"
    השאילתה בעצם שולפת את כל הרשומות שהשדות שמוגדרים בשאילתה שווים לערכים שנשלחו בטופס.

    אין צורך ומיותר בהחלט להשתמש במשפט תנאי שעשית אלא לעשות שאילתה בסגנון שכתבתי ולעשות לולאה על תוצאות הנתונים הרצויים מהטופס.

  17. סיון הגיב:

    תודה
    ושוב פעם, תודה רבה!!
    אני אנסה את זה ואעדכן בנוגע למתרחש…

שלח תשובה