476
צפיות
צפיות
19
תשובות
תשובות
בעיית קוד קשה
שלוםף
אני בונה אתר על הארי פוטר.
ובעת ההרשמה המוקדמת לאתר(הרשמת ביניים),
עשיתי כמה שלבים.
בשלב הראשון הזין המשתמש את פרטיו.
בשלב השני מוצא למשתמש שאלון ובתוצאותיו בודקים לאיזה בית ישובץ.
שלב 3 שבו המשתמש בוחר לעצמו סמל אישי ומאשר את פרטיו.
החלטתי לשים את כל הפרטים לתוך משתנים ובשלב השלישי לאחר האישור של המשתמש, להכניס הכל למסד הנתונים.
1. האם שיטה זו טובה לדעתכם ומקובלת?
2ץ יש לי בעיה בקוד של שלב 2.
אני מודיע לשרת להגיד למשתמש את התוצאות ולא מופיע שום דבר על הדף.
הנה הקוד:
(הקוד נמצא בקובץ המצורף)
19 תשובות
אני מצטער
אני מצטער
בבקשה תעזרו לי, ניסיתי לתקן את הקוד כבר חודשיים שלמים ושום דבר לא עזר. אתם האנשים האחרונים שאני מכיר שיוכלו לעזור, אני מבקש, תעזרו לי.
אנחנו לא הולכים לעבור על כזה קוד בשום אופן.
אתה חייב לנסות למקד את השאלה שלך.
הסבר קטן על הקוד
אבל למה?, אם אתם כבר עוזרים אז אי-אפשר לקרוא קוד ב2 דקות ולענות בדקה? סך-הכל להקדיש 3 דקות מהחיים.
הקוד ממוקד על החלק הראשון שבו אני לוקח את המידע מהטופס שבעמוד הקודם לעמוד עם הקוד הזה, ואז אומר לאפליקישנס שיוסיפו 1 אם התשובה מופנית לאפליקישון הנכון.
לקראת סוף הקוד תוכלו לראות הערה קטנה שכתבתי.
הבעיה היא שבחלק שבו אני בודק איזה אפליקישנ הוא בעל המספר הכי גבוה ואומר ל למשתמש לאיזה בית הוא שובץ. כאשר אני מסמן את האפשרויות בטופס ומעביר לעמוד הזה, הוא לא מראה לי כלום(לאיזה בית שובצתי). לסיכום הבעיה נובעת מזה שהאפליקישן לא מחשב את הנקודות(מוסיף1 לכל תשובה). תוכלו לראות את הבעיה
הקוד שלך ארוך וכתוב גרוע
כמה דברים ששמתי לב בקריאה ראשונה…
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 וזה דפק לך את הקוד
יש כמה שנכון וכמה שלא.
דבר ראשון. מיליון האיפים הם בצדק. ולמה? כי אני בודק איזו תשובה המשתמשים בחרו. לכל תשובה יש את הבית שלה. ואני בודק לאיזה בית נבחרה התשובה ומוסיף לבית הזה 1.
בקשר לדבר האחרון. אתה צודק. אני עשיתי כך. אבל חודשיים ניסיתי לתקן את הקוד, בדקתי דברים וניסיתי לשנות קודים. שיניתי את הקוד למה שהוא עכשיו.
בקשר להאיף הלא סגור. אם היה אחד כזה, מערכת ניפוי השגיאות באינטרנט הייתה כבר אומרת לי את זה.
אם אני עושה מיליון איפים, זה יותר נוח לי.
אבל בכל מקרה תודה, ועלית על רעיונות טובים מאוד, אבל הם לא יעזרו לי.
אני מוסיף לך פה סקריפט שבודק מה
הכי גדול:
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
אם יהיה לי זמן אני אכתוב לך קוד חדש…
לעצור כאן בבקשה.
בלוב סגול מתעלם מחוקי הפורום, ובמידה והוא לא יפסיק השרשור ימחק ללא היסוס.
אני מצטער פשוט זה אותם טעויות שאני
עשיתי אני רוצה שהוא ילמד אבל אוריקס צודק תשרשר לפי
אני לא רואה חריגה
תודה שיידעת אותי בחוקי הפורום, אחרי שכבר קראתי ושננתי אותם,
אך איני רואה פה אף חריגה מן הכללים והעצות הרשומים בהודעה שמי אמר אני נתן לי קישור אליה.
בכל זאת אם בעינייך יש בעיה בהודעות שלי, אולי תוכל להצביע עליה כדי שאוכל ללמוד ולא לחזור עליה עוד פעם.
תודה לך מי אמר אני, אך אשמח אם לא תכין לי קוד כי אני רוצה ללמוד בעצמי מטעויות ולא לחזור עליהם עוד פעם. אז אם תוכל, ובכלל תוכלו לעזור לי עם הבעיה הרשומה בשאשכול זה, אשמח מאוד.
המשך השרשור נמחק
אתה פשוט מצפצף על הכללים.
לא אהסס למחוק שוב במידת הצורך.
דבר איתי במסנג'ר
…
[email protected]
שמע לי…
אני לא רואה שאתה מתכוון להצביע על הטעות שחרגתי בה בפורום, אחרי שקראתי את הכללים.
במידה ולא תראה את המשך האשכול או תצביע על הטעות שממנה חרגתי(כי אם כך אין טעות שממנה חרגתי) האלץ לנקוט בצעדים חמורים.
אני הייתי מציע לך לא להיות תוקפני למשתמשי הפורום, "בלוב סגול מתעלם מחוקי הפורום, במידה ולא יפסיק היאלץ למחוק את השרשור". כאשר את יכל להגיד זאת בצורה אחרת בכלל, כמו 'בלוב סגול חרג מאחד חוקי הפורום, אני אבקש ממך לא לעשות זאת שנית, במידה ותרצה לדעת מה הטעות, שלח לי הודעה פרטית.' כך זה לא נעים יותר?
למה ההודעות של בלוב סגול נמחקו?
מה הוא עשה שעבר על חוקי הפורום ועברתי עליהם שוב ושוב
למה נרשמת על שני שמות ?!
כדי לשאול שאלות בשני שרשורים שונים ?!
"מי אמר אני"(אתה) נתן מסנג'ר שדומה מאוד(במדויק) לשם משתמש שלך
היי יש לי שאלה חדשה
הדבר הוא כזה.
כי שאמרתי יש לי בהרשמה לאתר 3 שלבים.
בשני השלבים הראשונים אני אוסף מידע מהמשתמש. בשלב השלישי אני שואל את המשתמש האם הוא רוצה לשנים את הפרטים(ואני כותב את הפרטים שהוא הכניס בתוך טבלה), ובמידה והוא אינו רוצה לשנות, אני מכניס את המיד שאספתי מהמשתמש בשני השלבים הראשונים לתוך מסד הנתונים.
שמתי את כל המידע שאספתי מהמשתמש במשתנים, ובעמוד של השלב השלישי עשיתי את הפקודה אינקלוד לשתי העמודים שמהם אני אוסף את הפרטים. חשבתי שאינקלוד יעזור, אבל הוא לא עוזר. אני לא יודע איך להגיע מהעמוד השלישי אל המשתנים שבעמוד הראשון והשני. בוויז'ואל בייסיק יש את היכולת להצהרת משתנה עם פובליק, ואז המשתנה קיים בכל הטפסים בפרוייקט. אבל איך אני יכל לעשות את זה בASP?
תודה לכל העוזר, שיבורך
קודם כל…
למה אתה לא נעזר בטלבת עזר ומכניס את הנתונים משני השלבים הקודמים אליה.
ולאחר מכן שולף אותם ממנה ושומר אותם בטבלה שאתה מעונין.
??
וואלה?
זה דווקא רעיון נפלא, לא חשבתי עליו.
תודה רבה לך על הרעיון.