בהנחה שיש לך שתי טבלאות, טבלת שמות וטבלת ציונים, כשליד ציון, יש שם, ככה שיכולים להיות אינסוף ציונים לכל אחד מאינסוף סטודנטים. $result = mysql_query("SELECT * FROM students_names");while ($row = mysql_fetch_array($result)){ // Students list $student_name = $row{'student_name'}; echo $student_name,":<br />"; $result2 = mysql_query("SELECT * FROM students_grades WHERE student_name = '$student_name'"); while ($row = mysql_fetch_array($result2)){ // Grades list echo "-",$row{'grade_value'},"<br />"; }
|
שים לב שהסוגריים המסולסלים אחרי משתנה ROW הם בעצם מרובעים.
הסבר קצר:
אני מתחיל משאילתא על טבלת השמות ויוצר לופ שמותנה בסוף הטבלה.
כל סיבוב שווה לשם של סטודנט אחד, ועל כל פעם אני מריך לופ נוסף, המדפיס את כל הציונים המשויכים לשם זה.
ככה אין ריצות מיותרות ולא מאבדים מידע.
למעשה לא בדקתי את הקוד, אבל אפשר לשחק איתו, ולשכלל במידת הצורך.
בהצלחה.
