שלח תשובה

זירת השאלות

476
צפיות
19
תשובות

בעיית קוד קשה

,‏ 17 ביולי, 2004

שלוםף
אני בונה אתר על הארי פוטר.
ובעת ההרשמה המוקדמת לאתר(הרשמת ביניים),
עשיתי כמה שלבים.
בשלב הראשון הזין המשתמש את פרטיו.
בשלב השני מוצא למשתמש שאלון ובתוצאותיו בודקים לאיזה בית ישובץ.
שלב  3  שבו המשתמש בוחר לעצמו סמל אישי ומאשר את פרטיו.
החלטתי לשים את כל הפרטים לתוך משתנים ובשלב השלישי לאחר האישור של המשתמש, להכניס הכל למסד הנתונים.
1. האם שיטה זו טובה לדעתכם ומקובלת?
2ץ יש לי בעיה בקוד של שלב  2.
אני מודיע לשרת להגיד למשתמש את התוצאות ולא מופיע שום דבר על הדף.
הנה הקוד:
(הקוד נמצא בקובץ המצורף)    

תגיות:

19 תשובות

  1. אני מצטער
    אני מצטער
    הנה הקוד

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

  2. אוריקס הגיב:


    אנחנו לא הולכים לעבור על כזה קוד בשום אופן.
    אתה חייב לנסות למקד את השאלה שלך.

  3. הסבר קטן על הקוד
    אבל למה?, אם אתם כבר עוזרים אז אי-אפשר לקרוא קוד ב2 דקות ולענות בדקה? סך-הכל להקדיש 3 דקות מהחיים.
    הקוד ממוקד על החלק הראשון שבו אני לוקח את המידע מהטופס שבעמוד הקודם לעמוד עם הקוד הזה, ואז אומר לאפליקישנס שיוסיפו 1 אם התשובה מופנית לאפליקישון הנכון.
    לקראת סוף הקוד תוכלו לראות הערה קטנה שכתבתי.
    הבעיה היא שבחלק שבו אני בודק איזה אפליקישנ הוא בעל המספר הכי גבוה ואומר ל למשתמש לאיזה בית הוא שובץ. כאשר אני מסמן את האפשרויות בטופס ומעביר לעמוד הזה, הוא לא מראה לי כלום(לאיזה בית שובצתי). לסיכום הבעיה נובעת מזה שהאפליקישן לא מחשב את הנקודות(מוסיף1 לכל תשובה). תוכלו לראות את הבעיה באתר הזה

  4. הקוד שלך ארוך וכתוב גרוע
    כמה דברים ששמתי לב בקריאה ראשונה…
    1. למה מיליון If בשביל השאלון לא כדאי יותר לעשות

    var ans1 = request.form("q1")
    appliction(ans1)=appliction(ans1)+1

    מאשר:

    if request.form("Q1")=G then
    application("G")=application("G")+1
    else
    if request.form("Q1")=S then
    application("S")=application("S")+1
    else
    if request.form("Q1")=R then
    application("R")=application("R")+1
    else
    if request.form("Q1")=H then
    application("H")=application("H")+1
    end if
    end if
    end if
    end if

    2. למה כשאתה בודק מי יותר גדול אתה לא עושה ככה :

    if application("g")>application("s") and  if application("g")>application("r")  and  if application("g")>application("h") then
    house=g
    else
    if application("g")>application("r") and  if application("g")>application("r") and  if application("g")>application("r") then

    וכך הלאה
    יש לך מיליון if לא סגורים בקיצור תתחיל לבנות את הקוד מחדש אני בטוח ששכחת לסגור איזה if וזה דפק לך את הקוד

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

  6. אני מוסיף לך פה סקריפט שבודק מה
    הכי גדול:


        dim arr(3)
        dim i
         arr(0)=application("G")
         arr(1)=application("R")
         arr(2)=application("H")
         arr(3)=application("S")
       for i=lbound(arr) to ubound(arr)
         if max<arr(i) then
          max=arr(i)
         end if
        next

    אם יהיה לי זמן אני אכתוב לך קוד חדש…

  7. אוריקס הגיב:

    לעצור כאן בבקשה.
    בלוב סגול מתעלם מחוקי הפורום, ובמידה והוא לא יפסיק השרשור ימחק ללא היסוס.

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

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

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

  10. אוריקס הגיב:

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

  11. שמע לי…
    אני לא רואה שאתה מתכוון להצביע על הטעות שחרגתי בה בפורום, אחרי שקראתי את הכללים.
    במידה ולא תראה את המשך האשכול או תצביע על הטעות שממנה חרגתי(כי אם כך אין טעות שממנה חרגתי) האלץ לנקוט בצעדים חמורים.
    אני הייתי מציע לך לא להיות תוקפני למשתמשי הפורום, "בלוב סגול מתעלם מחוקי הפורום, במידה ולא יפסיק היאלץ למחוק את השרשור". כאשר את יכל להגיד זאת בצורה אחרת בכלל, כמו 'בלוב סגול חרג מאחד חוקי הפורום, אני אבקש ממך לא לעשות זאת שנית, במידה ותרצה לדעת מה הטעות, שלח לי הודעה פרטית.' כך זה לא נעים יותר?

  12. Yoava333 הגיב:

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

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

    למה נרשמת על שני שמות ?!
    כדי לשאול שאלות בשני שרשורים שונים ?!
    "מי אמר אני"(אתה) נתן מסנג'ר שדומה מאוד(במדויק) לשם משתמש שלך

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

    תודה לכל העוזר, שיבורך

  15. itay26 הגיב:

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

    ??

  16. וואלה?
    זה דווקא רעיון נפלא, לא חשבתי עליו.
    תודה רבה לך על הרעיון.

שלח תשובה