php / שיעור 2 /לולאות
שיעור 2
לולאות
בשיעור הזה, אנחנו הולכים ליצור מספר עמודים פשוטים אך יעילים בעזרת
MySQL ו-PHP. בואו נתחיל בהצגת מאגר המידע שיצרנו אתמול , אבל עם קצת
יותר "פוליש".
דבר ראשון, בואו נתשאל את מאגר המידע שלנו בעזרת הקוד הבא:
<html>
<body>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM employees",$db);
echo "<table border=1>\n";
echo "<tr><td>Name</td><td>Position</tr>\n";
while ($myrow = mysql_fetch_row($result)) {
printf("<tr><td>%s %s</td><td>%s</td></tr>\n", $myrow[1], $myrow[2], $myrow[3]);
}
echo "</table>\n";
?>
</body>
</html>
כנראה ששמתם לב שהוספנו כמה ישומיים חדשים לפה. הבולט ביותר הוא
הלולאה ()while. הלולאה אומרת שכל עוד יש שורת מידע לקחת (תוך שימוש
בפונקציה ()mysql_fetch_row ) יש לשים אותה במשתנה. אז בצעו את הפעולות
המפורטות בין הסוגריים המסולסלים ({}). הביטו עכשיו, זה אמור להיות יותר
הגיוני.
פונקצית ה- ()mysql_fetch_row שווה מבט מקרוב. בעיה קטנה אתה היא שהיא
מחזירה מערך נתונים שתומך אך ורק בערכים נומריים לשדות ספציפיים. השדה
הראשון נקרא 0, השני 1 וכך הלאה. בשאילתות מורכבות זה יכול להפוך לסיוט
של ממש.
עכשיו בואו נביט בלולאה. את השורות הראשונות אתם מכירים מהדוגמא שלנו
בשיעור 1 . בלולאה הזאת אנחנו שולפים שורה מהתוצאה ומגדירים אותה למערך
הנתונים myrow$. אז אנחנו מציגים את התוצאה על המסך בעזרת printf.
אחרי שהלופ הזה חוזר חלילה, עוד שורה מוגדרת ל-myrow$. תהליך זה יימשך
עד אשר יגמרו שורות לשליפה.
הדבר הטוב ב- ()while היא שאם השאילתא שלכם לא מחזירה תוצאות, לא
תקבלו הודעות שגיאה. בפעם הראשונה בה השאילתא לא תחזיר מידע אותו
ניתן להגדיר ל-myrow$, התוכנה פשוט תמשיך הלאה. אבל אם השאילתא לא
מחזירה מידע בכלל, אין לנו שום דרך להודיע על כך למשתמש, וכדאי שנספק
לו הודעה כלשהי. זה אפשרי, אז בואו נעשה את זה.
עמוד הבא: השארו מיודעים >>
|