539
צפיות
צפיות
7
תשובות
תשובות
הצגת הודעות בסדר הנכון בפורום עץ )-
מצטער אם הכותרת לא מספיק ברורה – כנראש שזה כי העניין לא מספיק ברור.
אוקי, אז אני בונה פורום עץ רקורסיבי בשיטה המתוארת כאן באתר.
יש לי לכל הודעה ראשית מאפיין (last_change) שיודע מתי שינו את ההודעה לאחרונה – הגיבו לה – הגיבו לבןנכד שלה וכו'.
אני רוצה למשוך את כל ההודעות בעזרת getrows אבל כשאני מגדיר את השאילתא:
ORDER BY last_change DESC
כדי שהודעה שהגיבו לה תהייה מוצגת למעלה אני נתקל בבעיה:
כל התגובות שלה מוצגות כמובן בסדר ההפוך – התגובה הכי חדשה מוצגת למעלה וכן הלאה.
יש למישהו רעיון איך לפתור את הצרה?
האם הפיתרון הנכון הוא שתי שאילתות – אחת להודעות ראשיות ואחת לתגובות ולהכניס כל אחת למערך getrows שונה?
האם לעשות מניפולציה בפתיחת התגובות בלבד?
אני מקווה שאני מספיק ברור…
תודה רבה
אלחנן
7 תשובות
ואם אתה מוריד את ה DESC מה קורה?
מה שקורה זה שההודעה שמוצגת בראש הדף
היא הישנה ביותר.
מיון לפי אבא
תנסה למיין לפי
last_changed desc, father asc
הכוונה ב father, זה האבא של כל הודעה.
עוד שאלה: טעינה עצומת מימדים
בשאילתא של טעינת הודעות הפורום אני טוען את כל הרשומות ואז מכניס אותן ל getrows בדיוק כמו בדוגמה שפה באתר.
מה יקרה אם יהיו 10000 הודעות?
איך אפשר להתגבר על איטיות?
לחלק לעמודים
פשוט לא לטעון את כל ה10k
select top X (access/mssql) or select…limit X(mysql)
זאת הבעייה
שזה לא רלוונטי.
מה עוזר לי לטעון את 100 הרשומות החדשות ביותר?
אם למשל הגיבו תגובה חדשה על הודעה ישנה וההודעה הוקפצה אז אני צריך לטעון גם הודעת אב ישנה מאד…
שדה תאריך עדכון
אז פתרון לזה יהיה, להוסיף לאבא שדה, תאריך עדכון (בנוסף לתאריך יצירה)
וכשמעדכנים את הבן, לעדכן גם את התאריך של האבא.
או
לטעון את האבות לפי התאריכים של הבנים
מעבר לזה, זמן טעינה זה תמיד בעיה לא קטנה.