שלח תשובה

זירת השאלות

517
צפיות
72
תשובות

בניית פורום

,‏ 26 באפריל, 2004

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


תודה, אלברט

תגיות:

72 תשובות

  1. albert הגיב:

    =>
    אמרתי לך שקראתי ולא ממש הבנתי איך זה בדיוק עובד…
    ואני גם לא יודע לעבוד עם מערך דו מימדי…..
    את המאמר של רועי הבנתי פחות או יותר אבל ממש לא הבנתי איך אפשר לתת תגובה לתגובה?
    איך אני עושה?

    תודה, אלברט

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

    אבל שמע
    זה משהו דיי קל… אתה עובד ב-getRows ואני מניח שאתה יודע איך עובדים עם getRows
    וגם בקרוב המאמר החדש שלי יעלה כאן בוואבמסטר(שהילדה תשוב) שהוא מסביר על המשך הפורום

  3. albert הגיב:

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

    תודה, אלברט

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

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

  5. albert הגיב:

    בבקשה
    איך אפשר להוסיף הודעה לתגובה ולא להודעה הראשית?

    תודה

  6. Night הגיב:

    מה כן יעיל?
    סתם בשביל שאני ידע אני גם בונה פורום בימים אלה.

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

    לא יעיל בשרת
    אני בונה את הרקורסיה בלקוח (על העברה ללקוח יהיה במאמר שיעלה בקורב)

    ואני דיי נמנע מרקורסיה אין לי הרבה צורך בזה

  8. albert הגיב:

    =>
    מישהו מוכן בבקשה להסביר לי איך אני בונה את הפורום הזה?
    תודה, אלברט

  9. albert הגיב:

    כלומר:
    רק אני לא יודע איך בדיוק מתבצע שליחת הודעה לתגובה ולא להודעה ראשית?
    תודה רבה

  10. Night הגיב:

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

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

    הקטע ברקורסיה זה
    שהפונקציה קוראת לעצמה שוב ושוב עד שמתמלא תנאי מסוים (במקרה של הפורום זה עד שאין תגובות להודעה מסוימת)
    איך אני מבדיל בין הודעת אב להודעת בן ?
    יש לנו עמודה בשם ParentID בפורום שלנו המעידה על ה-ID של הודעת האב
    ויש לנו עמודה בשם ID שהיא מספור אוטומטי שנותנת ID להודעה מסוימת
    הודעתאב זו הודעה שקיבלה parentID בלתי אפשרי שיהיה בשדה ID ז"א שאם הערך הראשון האפשרי בשדה ID הוא 1 (ע"פ המספור האוטומטי) אז עלינו לתת מספר קטן מאחד… ניקח את המספר 0

    הודעת בן (תגובה)
    זו הודעה שקיים לה parentID בשדה ה-ID ואז ברקורסיה עצמה אנו יכולים להדפיס אותה כתגובה

    כדי לשלוח תגובה או הודעה עלינו לשלוח את ה-ID של ההודעה אליה אנו מגיבים
    (הודעה חדשה=0)

    אם אתה צריך עוד הסברים או שמשהו לא מובן אז דבר

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

    יש עוד כמה
    יש את הליניארי (שאני לא מתמצא בו)
    יש את ה-DC שזה הפורום שבו נכנסים להודעה בעמוד חדש ורואים את כל התגובות שלה לפי סדר מהישן לחדש (לרוב כמו ה-PHPHEB ודומיו)

  13. Night הגיב:

    מישהו יכול להסביר לי על הלינארי?

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

    ליניארי כביכול זה פורום
    שהשליפה בו מסודרת אך המסד הוא טעות אחת גדולה.
    הודעות ותגובות מסודרות לפי סדר הגיוני ז"א שאם להודעה יש ID כזה (מסוג טקסט) :
    001
    אז התגובה הראשונה שלה תהיה : 001.001

    אתה יכול למצוא וד הסברים ב-faq של פורום ASP בתפוז (130) רק תכתוב שם ליניארי ותקבל שם תוצאות… (יש גם מדריך איך לבנות את הפורום)

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

  15. Night הגיב:

    למה הוא לא יעיל בשרת?
    תודה על התשובות ועל הסבלנות..

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

    הוא לא יעיל בשרת בגלל
    שלכל הודעה יש תגובות בדר"כ ובגלל שזו פונקציה שקוראת לעצמה היא שוב ושוב ושוב מתבצעת עד שכל השרשור מודפס… ואז זה עובר לעוד שרשור
    בכל עמוד יש 15 שישורים למשל ונגיד שיש שרשור-פלצת ויש גם רק הודעה וכל השרשורים האחרים הם ברמת הסביר… השרשור פלצת יגזול לנו טונה משאבי שרת בגלל הרקורסיה…
    עכשיו ברגע שמעבירים ללקוח את הרקורסיה יש פחות עבודה לשרת וכך העמוד עולה יתר מהר

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

    התפיסה של חוסר הקפדה על יעילות
    בלקוח מוטעית. גם ללקוח העברת מערך דו מימדי ברקורסיה יכולה להיות כבדה…

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

    מי אמר שאני מעביר מערך דו מימדי
    מהשרת ללקוח אני משתמש ב-getString ומפרק את המחרוזת למערך חד מימדי בלקוח!

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

    אוקיי… ועל המערך אתה עושה רקורסיה
    תחשוב כמה זכרון זה לוקח

  20. albert הגיב:

    אני מבין אותך נכון?=>
    כלומר:
    הודעת אב – 0
    תגובה להודעת אב – מספר הID של ההודעה
    תגובה לתגובה – מספר הID של התגובה
    ככה זה עובד?
    ככה זה יצא:

    |id| |parentID| |body| וכו'…
    |1| |0| |הודעת אב|
    |2| |1| |תגובה ראשונה להודעת האב הראשונה|
    |3| |1| |תגובה שניה להודעת האב הראשונה|
    |4| |2| |תגובה ראשונה לתגובה להודעת האב הראשונה|

    נכון? זה העיקרון?

  21. albert הגיב:

    =>
    יש דרך לא לעבוד עם מערך?
    כלומר, כמו המאמר של רועי? שהוא בונה שאילתה באקסס שהיא מסדרת את ההודעות לבד, ואנחנו רק שולפים את הנתונים בקוד הASP שלנו ומדפיסים את ההודעות…
    הבעיה במאמר שלו, שלא הבנתי איך אנחנו שולחים תגובה לתגובה?
    ניר אמר לי שמכניסים לתוך ה- parentID את ה-ID של ההודעה(התגובה).
    אבל אז איך נדע לאיזה שרשור היא שייכת? ואיך השאילתה מסדרת אותה?
    אני מבולבל לגמרי…

    תודה, אלברט

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

    אבל אני בניגוד לאחרים
    לא עושה בלולאה שקוראת לפונקציה מעבר על כל איברי המערך אלא מדלג בכל פעם שורה (מערך חד מימדי—> נשמע מוזר נכון–>ראו מאמר שלי)
    ללקוח כמו לשרת יש בעיות עם מערכים דו מימדיים (מהירות!) ולכן אני עובד על חד מימדי

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

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

    תפנה ל-wazzap מישהו הכין לו
    פורום רקורסיבי שעובד עם הרקורדסט
    קלוט לאחרי שלושה ימים הפורום הזה נופל… (מבחינת מהירות)

    למה אנחנו עובדים עם מערך ?
    עבודה עם מערך מכניסה לנו את כל הרשומות המתבקשות במשתנה אחד ואפשר לגשת לכל נתון בנוחות…
    נסה לעבוד עם getString בלי להפוך אותו לבסוף למערך ?!!! (מי שיצליח הוא מלך ) getSTring מקבל את הרשומות כמחרוזת אחת של הודעות.
    זה או עבודה מהירה ונוחה! עם מערכים
    או עבודה איטית ולא נוחה (ואף טיפה מסובכת) עם הרקורדסט…

  24. albert הגיב:

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

    תודה, אלברט

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

    דראתי בזמנו את המאמר
    ולא הבנתי כלום…

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

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

  27. albert הגיב:

    =>
    העיקרון הוא זה שהשאילתה מארגנת את ההודעות לפי ערכים כפולים שיש בשדה ה- parentID…..
    עד פה הכל ס22ה, אבל מה קורה אם רוצים לשלוח הודעה לתוגבה ולא להודעה ראשית?

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

    שולחים את ה-ID של התגובה
    כ-PARENTID להודעה החדשה…

  29. albert הגיב:

    =>
    ואיך השאילתה אמורה לסדר את ההודעות?
    ואיך נדע לאיזה שרשור ההודעה שייכת?

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

    אפשר להוסיף עמודה בשם rootID
    (אם היא לא קיימת) שבעצם מקבלת את ה-ID של ההודעה הראשית בשרשור ובכך מסדרים את העמוד

    ובקשר לשאלתך הראשונה אני לא יודע… אני לא בונה כך…

  31. albert הגיב:


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

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

    לדעתי הפורום הכי יעיל הוא DC
    אבל אני לא אובייקטיבי
    יש כאן מאמר חדש על עקרונות לבניית פורום של "מישהו" כהן (לא זוכר את השם )
    קרא אותו הוא ייתן לך כייון כללי

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

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

  34. albert הגיב:

    =>
    קודם כל, תודה רבה!
    שנית, אתה יכול להסביר לי מה זה פורום DC? לתת לי קישורים למאמרים(בעברית) וכו'….
    ועוד דבר, אמרת שיש לך עוד מאמר על פורום רקרוסיבי, העלאת אותו כבר?

    תודה, אלברט

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

    כן יש לי
    לילדה בלבן היו כמה הארות על המאמר והייתי צריך להוסיף משהו (הטראנזיקציות)
    וזהו הוא צריך לעלות בקרוב מאוד

  36. albert הגיב:

    =>
    אוקיי ס22ה נחכה
    ותענה לי בבקשה על השאלחות הקודמות…
    תודה

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

    אם אפשר להפסיק עם החיצים האילו
    בבקשה.
    תודה.

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

    אתה יכול לרכז אותן בהודעה אחת בבקשה
    ?!!!

  39. albert הגיב:

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

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

    פורום DC זה פורום
    שכל הנושאים מוצגים בו ובלחיצה על קישור מגיעים לעמוד ההודעה עצמה וכל התגובות מסודרות בסדר כרונולוגי (מהישן לחדש)
    אתה מוזמן להסתכל בפורומים שסוסיתא נותנת כדי לקבל רעיונות…

  41. albert הגיב:

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

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

    טוב אני אלך לוגי…
    תחשוב ככה… שתגובה זו הודעה ולהודעה יש תגובות התגובות מקבלות את ה-ID של ההודעה וכך זה ממשיך הלאה
    וכך הולכ הטבלה :

    | ID | | pID | | subject |

    | 1 | | 0 | |ראשי |
    | 2 | | 1 | |תגובה לראשי |
    | 3 | | 2 | |תגובה לתגובה |
    | 4 | | 2 | | תגובה שנייה לתגובה |
    | 5 | | 3 | | תגובה ראשונה לתגובה המשנית |

    בעצם אין הבדל בין הודעה ראשית לתוגבה ראשונה לתת תגובה
    כך את החלון כהודעה אחת גדולה
    ההדועה הגדולה הזו מחפשת את כל הנושאים שלה (pID =0)
    הנושאים מחפשים את התת נושאים שבעצם הם נושאים המקבלים pId השווה לנושא האב וכך הלאה

  43. albert הגיב:

    שגיאה:
    עשיתי הכל לפי המדריך שלך(והוספתי כל מיני דברים אחרים מעצמי, אבל העיקרון הוא אותו עיקרון)
    אבל אני מקבל את השגיאה הבאה:

    Microsoft VBScript runtime (0x800A001C)
    Out of stack space: 'showMessage'

    מה הבעיה? ומה עליי לעשות?

    תודה.
    אלברט.

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

    שעושים COPY-PASTE לקוד האחרון
    במדריך לא מקבלים זאת
    תראה את השינויים שעשית וננסה לעזור

  45. albert הגיב:

    אני לא
    עשיתי COPY PAST לקוד שלך!
    הקוד שלך בסיסי מידי…
    אני הוספתי כמה שדות לטבלה לכן המקום של כל שדה התשנה במערך…..
    רק זה מה ששיניתי…. והוספתי עוד כמה תגים לעיצוב והזחה של ההודעות…. זה הכל…
    כל השאר כמעט אותו דבר…
    אתה לא מבין מה אומרת השגיאה?
    מספיק להביא לך את הפונק' הרקורסיבי?

    תודה.
    אלברט.

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

    תביא את השאילתא כולל הפונקציה
    הרקורסיבית…
    לא אמרתי שאתה עושה copy paste לקוד שלי אני רק התכוונתי שהקוד שם עוד

  47. albert הגיב:

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

    Microsoft VBScript runtime (0x800A001C)
    Out of stack space: 'showMessage'

    כתבתי בקוד עצמו על איזה שורה זה מצביע…

    תודה מראש.
    אלברט

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

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

    ID, parentId, subject

    הדרך שבה אתה עושה Padding תיצור לך מגלשה בסופו של דבר ולא עץ מסודר

    המסד שלך בנוי אחרת מהמסד שלי… הודעות אב הם עם PARENTID בערך 0 ולא עובד עמודה של TRUE/FALSE…
    ה-padding לא צריך להיות קשור למסד הוא מתבצע באופן עצמאי (DIV עם PADDING שנמצא בתוך DIV עם PADDING וכך הלאה)

    כדי שתראה למה אני מתכוון עם ה-padding תסתכל על הקישור המצורף הילדה בזמנו עשתה לי אותו כשלי יצא מגלשה במקום עץ מסודר

    אני לא ראיתי בקוד שהבאת את המשתנה DMY

    מצטער אם הייתי ביקורתי מידי

  49. albert הגיב:

    ניר:
    א. השדות שאני מנסה להשוות הם כן נכונים(ראה תמונה, וגם תבין איך המסד שלי בנוי בהזדמנות זו) אני מנסה להשוות את התא

    rsArray(0,index)
    שהוא ID של ההודעה לתא

    rsArray(3,index)
    שהוא ה- parentID…
    ב. לא הבנתי את הבעיה ב- padding שאני עושה, אם אתה יכול תן לי דוגמא של נגלשה שאני אראה מה ההבדל בין מה שאתה הבאת ומה שאני עושה. חושב להדגיש שאני רוצה שיצא כמו שיש בפורום הזה….
    ג. parentID בהודעות האב הוא עדיין המספר של ההודעה ואני מבחין בהודעות אב ובנים דרך שדה בולאני בשם IsMain (הרעיון היה של "ירדן שם טוב" בקישור הזה)
    ד. אתה צדקת לגבי המשתנה Dmy במסד הנתונים היא Dmy אבל בקוד היא MsgDateAdd…
    ואני מודה לך על כל הביקורות באמת, כי רק ככה אני אצליח להעלות על הטעויות שלי ואתקדם….

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

    הרעיון של ירדן היה לפורום טבלאי
    ולא במבנה העץ ולדעתי גם זה תכנון לא נכון
    אתה לא צריך את העמודה levelID זו חשיבה לדברי אוריקס והאחרים מפורום תפוז "קווקזית" (שלא תגידו שאני גזען P-:)
    הודעה ראשית מקבלת parentID עם הערך 0 וכך מבדילים בין הודעה לתגובה
    (0 בחיים לא יוכל להכינס כערך של מספור אוטומטי)
    זו דוגמא למגלשה:
    \@
    \\\\\@
    \\\\\\\\\\\\\@
    \\\\\\\\\\\\\\\\\\\\\\\\\\\@
    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\@
    (@ זה תחילת הנושא)
    כדי שהדבר הזה לא יווצר אתה יכול להשתמש בדוגמא שהילדה הכינה.
    וברגע שתעשה כמו שהילדה הדגימה אז שני דברים יקרו:
    1. לא תיווצר מגלשה
    2. ההזחה תתבצע ב-CSS בלי קשר למסד
    3. תוכל להוריד את העמודה levelID

    עכשיו אל תשלוף את הכל כי אתה לא צריך את כל הנתונים בדף
    למשל את ה-ID של הפורום וה-ID של כל שרשור אתה לא צריך (groupID ו-forumID)
    אני מציע לך תתחיל מהבסיס של הפורום ז"א תיצור פונקציה רקורסיבית פשוטה שרק מציגה את הנושא של ההודעה מוזחת (כמו במאמר שלי) וכל פעם תוסיף משהו אחד לשאילתא
    עכשיו בקשר למסד שלך, לאחר ההארות שלי אתה יכול להוריד את העמודה levelID ולאחר הצצה קטנה נוספת אפשר להפוך את שדה הנושא לשדה מסוג TEXT לא חבל על המקום ?!

  51. albert הגיב:

    אוקיי, אז ככה:
    עדיין לא הבנתי את ההבדל בין הסוגים השונים של הפורומים(טבלאי, עץ וכו'…) האמת, זה לא משנה (לבנתיים לפחות, עד שיהיה לי עוד קצת ניסיון בבניית פורומים )
    עכשיו, הורדתי את השדות שלא צריכים אותם לבנתיים והקוד נראה עכשיו בדיוק כמו שלך….
    עכשי יש בעיה אחרת:
    הקוד מציג לי רק את התגובה הראשונה להודעה הראשית…..
    כמולר אם יש לי טבלה ככה שבנושא כתוב:
    1 – כלומר הודעה ראשי
    1.1 – תגובה ראשונה להודעה הראשית
    1.2
    1.3
    1.4

    אבל הפועם הקוד מראה לי רק:
    1
    1.1
    (עם הזחה)
    מה קרה לכל התגובות האחרות?
    הנה הפונק':

    if not rs.eof then
    rsArray = rs.getRows()
    for i = 0 to uBound(rsArray,2)
    if rsArray(1,i) = 0 then
    call showMessage(i)
    end if
    next
    else
    Response.Write("אין הודעות בפור


    ום.")
    end if
    function showMessage(index)
    MsgSubject = rsArray(3,index)
    Response.Write("<div style=""padding-right:15px"">")
    Response.Write(MsgSubject)
    for a = 0 to uBound(rsArray,2)
    if rsArray(1,a) = rsArray(0,index) then
    call showMessage(a)
    end if
    next
    Response.Write("</div>")
    end function

    ומבנה הטבלה מצורף כקובץ תמונה
    מה הבעיה פה?
    תודה.
    אלברט.

  52. albert הגיב:

    תיקון לקוד:
    אין לי מושג למה זה יצא ככה….
    הנה הקוד בצורה יותר נוחה לקריאה:

    if not rs.eof then
    rsArray = rs.getRows()
    for i = 0 to uBound(rsArray,2)
    if rsArray(1,i) = 0 then
    call showMessage(i)
    end if
    next
    else
    Response.Write("אין הודעות בפורום")
    end if
    function showMessage(index)
    MsgSubject = rsArray(3,index)
    Response.Write("<div style=""padding-right:15px"">")
    Response.Write(MsgSubject)
    for a = 0 to uBound(rsArray,2)
    if rsArray(1,a) = rsArray(0,index) then
    call showMessage(a)
    end if
    next
    Response.Write("</div>")
    end function

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

    בדוק שלהודעות
    הנוספות נתת PARENTID של הודעה קיימת…
    ותוריד את isMain לא צריך גם אותו

  54. albert הגיב:

    בדקתי.. הכל בסדר…
    נתתי אותו מספר ל- ParentID שנתתי להודעה הראשונה.. נורא מוזר…
    מה הבעיה?

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

    נסה אולי לשים
    CINT בלולאה של התגובות

    for a = 0 to uBound(rsArray,2)
    if cint(rsArray(1,a)) = cint(rsArray(0,index)) then
    call showMessage(a)
    end if
    next

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

    תראה את השאילתא
    אם אתה משתמש ב-* אז רק תגיד וזהו…

  57. albert הגיב:

    אני משתמש…
    חחח איך אתה כזה ישר עולה על הבעיה "אם אתה משתמש ב- * אז רק תגיד וזהו"
    זאת הבעיה?

  58. albert הגיב:

    הנה השאילתה החדשה:
    שיניתי את השאילתה שלי אבל עדיין הבעיה קיימת:

    rs.open "SELECT MessageID,ParentID,MsgSubject FROM forumsMsg",conn

    מה הבעיה ומה עושים?
    תודה.
    אלברט.

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

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


    if not rs.eof then
    rsArray = rs.getRows()
    for i = 0 to uBound(rsArray,2)
    if rsArray(1,i) = 0 then
    call showMessage(i)
    end if
    next
    else
    Response.Write("אין הודעות בפורום")
    end if
    function showMessage(index)
    dim MsgSubject, a
    MsgSubject = rsArray(2,index)
    Response.Write("<div style=""padding-right:15px"">")
    Response.Write(MsgSubject)
    for a = 0 to uBound(rsArray,2)
    if rsArray(1,a) = rsArray(0,index) then
    call showMessage(a)
    end if
    next
    Response.Write("</div>")
    end function

    מקווה שזה יעזור אחרת אני מציע שתתחיל מהתחלה ותלך לפי המאמר בשלבים
    (עד שאני הגעתי לתוצאה הסופית לקח לי 3 פעמים –> פעמיים ראשונות עשיתי משהו לא נכון ב-SQL שהרס לי את הכל)

  60. albert הגיב:

    עכשיו זה עבוד!
    אתה יכול להגיד לי איפה הייתה הבעיה?

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

    יכול להיות שזה היה בגלל שלא
    הגדרת משתנים בתוך הפונקציה ?!
    ואני בסה"כ הגדרתי משתנים וסידרתי את הקריאות לאיברי המערך בהתאם לשליפה שלך


    SELECT MessageID(0),ParentID(1),MsgSubject(2) FROM forumsMsg

  62. albert הגיב:

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

  63. snir pinhas הגיב:

    זאת השיחה הכי ארוכה שראיתי בפורום O

שלח תשובה