03-02-2007, 11:14
|
|
|
חבר מתאריך: 21.09.02
הודעות: 408
|
|
זה לא עבד מכיוון ש mysql_fetch_array עבר על כל הרשומות אשר קיבלת באמצעות השאילתא בפעם הראשונה, וכשהיא מגיעה לסוף הרשומות היא לא חוזרת להתחלה, אלא מחזירה false, מה שגורם ללולאת while להפסיק את הפעולות שלה. ברגע שהשאילתא שלך אף פעם לא התחדשה, אחרי ההרצה הראשונה הסמן נשאר על סוף הרשומות ומאז והלאה החזיר false כל הזמן. אם היית רוצה לגרום לקוד הקודם שלך (אשר בהחלט פגום) לפעול, כל שהיה עליך לעשות הוא (להכניס את השאילתא של הנושאים לתוך הלולאה הראשונה):
קוד PHP:
$gt_v = mysql_query("SELECT * FROM category_main"); while($row_gate = mysql_fetch_array($gt_v)){ echo "<dt>"; echo htmlspecialchars($row_gate['name']); echo "</dt>"; $subject_v = mysql_query("SELECT * FROM subject"); while($row_subject = mysql_fetch_array($subject_v)){ if($row_gate['id'] == $row_subject['id_of_gate']) echo "<dd>".htmlspecialchars($row_subject['name'])."</dd>"; } }
|