php / יצירת דיון רב ממדי עם PHP ו-MYSQL / הנושאים העיקריים
הנושאים העיקריים
המשתמש יתחיל את השיטוט באתר במבט על רשימת הנושאים העיקריים. אלו
שלא קשורים לאף נושא אחר שבא לפניהם. כאשר נושא מסומן, הקורא יוכל לראות
את כותרות כל ההודעות שהוצבו כתגובה לנושא המקורי, ההודעות שמגיבות
להודעות האלו, וכן הלאה. הכותרת של כל נושא תשמש כקישור לתוכנו המלא.
הצץ בדוגמא אם הדבר לא ברור
המשתמש ישתמש דבר ראשון ב- display_topic.phtml
כדי לעזור למשתמש לזכור
את שורת הכתובת המדויקת, אילצתי את קובץ האינדקס של הספרייה להכיל את
הקובץ הזה. מכיוון שהמשתמש רק נכנס לאתר, שום נושא לא יהיה ברור מראש.
הנה החלקים החשובים מהקובץ:
<?
if (empty($topic_id (( {$topic_id = 0;}
DisplayTopic($topic_id);
?>
למרות שתכנתנו את פונקצית DisplayTopic להציב את הערך 0 כברירת מחדל של
הטיעון topic_id, עדיין מומלץ שנבדוק שהעסק אכן עובד, אחרת תופק הודעת
שגיאה ברגע שנקרא לפונקציה.
כאשר הפונקציה נקראת עם ערך של 0, היא תגרום להצגת רשימת הנושאים
העיקריים. הנה השאילתה שעושה את זה:
select distinct t.topic_id, t.parent_id, t.root_id, t.name,
t.description , t.author, t.author_host, t.create_dt, t.modify_dt
from px_topics t, px_topics r
where t.topic_id = r.root_id
אני מקווה ששמתם לב שיש לנו רק טבלה אחת, ובכל זאת אנו מבצעים צירוף.
בשורת ה-From יצרתי שני חלקים מאותה טבלה, וקראתי להם T ו- R. בשורת
ה-Where אני מצרף את שתי הטבלאות כדי שהנושא והשורש יהיו שווים, כך אני
מבטיח שהרשימה שתתקבל תכלול רק את הנושאים העיקריים. קצת מעוות,
אבל בעצם פשוט מאוד.
הפונקציה ממשיכה ויוצרת HTML שיראה בערך ככה:
<a href="display_topic.phtml?topic_id=1">my first
topic</a><br>
<a href="display_topic.phtml?topic_id=7">my second
topic</a><br>
<a href="display_topic.phtml?topic_id=15">my third
topic</a><br>
<a href="display_topic.phtml?topic_id=17">my fourth
topic</a><br>
<a href="display_topic.phtml?topic_id=21">What should we
have for lunch?</a><br>
<a href="display_topic.phtml?topic_id=18">Let's get out of
here.</a><br>
המציאות לא הולכת להיות זהה למה שיצרנו כאן, אבל בואו נניח שכרגע זה מה
שיש לנו במסד הנתונים.
עמוד הבא: פרטי הנושאים >>
|