![]() |
פורום עץ "מדורג"
אהלן חברים,
פורום אני יודע לבנות, אבל השאלה שלי היא איך לעשות אותו מדורג, כלומר: "תגובה לתגובה לתגובה לתגובה.. בלה בלה בלה וכן הלאה.." הצעות, רמזים, משו? =] תודה |
תסביר יותר נכון על מה ת'מדבר..?
|
נו כמו בתפוז, נענע, וואלה שאפשר להגיב לתגובה ולא רק לאשכול..
וזה מציג כזה מדורג יפה |
מה הבעיה פשוט לעשות תבניות...
|
ציטוט:
|
תעשה ככה במסד שיש 3 טורים מיוחדים לזה
טור 1 בשם topic השני post השלישי to אם זה תגובה לנושא ראשי אז בtopic יהיה מס' הנושא ובposts יהיה כתוב 0 ואם זה תגובה להודעה אז בtopic יהיה כתוב 0 וPosts מס' התגובה אליו מגיבים. ובTO יהיה כתוב לאיזה תגובה זה שייך אחר כך הקובץ יהיה תנאי ציטוט:
|
העא? :|
|
השאלה שלך לא מובנת
אתה צריך תכנון מסד? אתה צריך עזרה באלגוריתם? מה בדיוק? כי לכתוב לך את הקוד במלואו אני לא אעשה את זה |
אני צריך את ההסבר לאיך לעשות את זה..
|
אתה עושה שליפת נתונים לכל נושא, תגובה, וכדו'.
אבל תמקד את מה שאתה צריך. |
ציטוט:
ניקח את השיטה הפשוטה (למתחילים), המסד ייראה ככה (רק השדות הרלוונטים): קוד:
nMessageId | nForumId | nParentId | nLevelId | dDate nLevelId - יחזיק את השרשור (כלומר ייטפל בהזחה) dDate - תאריך הכתיבה של ההודעה כל הודעת בן תקבל את ה ID של הודעת האב. הודעת בן תקבל levelId של 0 והודעות נכד 1, נינים 2 וכך הלאה במידה ויש יותר מהודעת בן לאותו שרשור נניח, תסדר לפי התאריך (מי שיופיע ראשון זה מי שנכתב קודם) |
|
אלעד תודה רבה =]
אבי, תודהעל הנסיון אבל זה לא מה שאני מחפש |
אלעד, מה המטרה של ה-LevelId?
|
הדירוג של ההודעה..
|
כן, הבנתי, העומק שלה ביחס לעץ... אבל בשביל מה צריך את זה?
|
ציטוט:
|
בשביל מה?
אתה מכניס לכל ענף (הודעה) את ה-ID של הענף שמעליו (ההודעה אליה הוא מגיב) ולהודעות חדשות מכניס NULL. ואז עושה פונקציה רקורסיבית שמקבלת ID ומדפיסה את הענפים דרגה אחת תחתיו וקורא לה. |
ציטוט:
אני אתן לך דוגמא קטנה - בסוגריים מופיע ככה: (ID ההודעה, ID של הודעת האב) אהלן חבר'ה מה המצב? (56 , 0) .....הכל טוב אחי, מה איתך? (78 , 56) .....סבבה גבר (102 , 56) ...........אה יוסי מה קורה לא רואים אותך (105 , 102) ................וואלה הכל טוב.. בא למשחק בשבת? (222 , 105) .....................מה איזה משחק? (333 , 222) ..........................של מכבי בצ'כונה (355 , 333) ................הופה הנה יוסי תראו (250 , 105) עכשיו, איך בדיוק אתה מבצע את ההזחה להודעות החלק מההודעה שה ID שלה הוא 105? אם היית משתמש ב levelID אז היית יכול לבצע משהו כזה: קוד:
style= "width: 20 * levelID px;" |
או שכל פעם שאתה יורד בעץ להוסיף אחד... :S
בפורומים של אלפי הודעות אתה סתם מבזבז הרבה זיכרון ומגדיל את הבסיס נתונים. |
אז ניר איך ניתן לעשות את זה?
|
במקום לקחת את הרמה מהבסיס נתונים אתה מחשב אותו לבד, מוסיף 1 למונה מסויים.
ומעביר אותו כפרמטר ברקורסיה. |
ציטוט:
ותאמין לי ששדה אחד של מספר לא יעלה לך כ"כ הרבה משקל ב DB |
כל הזמנים הם GMT +2. הזמן כעת הוא 05:57. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ