קוד המקור – שליפה והכנסת שאילתות באמצעות תכנות צד השרת
את ספר האורחים לא נכתוב מ-0. קוד ה-HTML שלנו כבר כתוב כולל העיצוב. כל אשר אנו נכתוב יהיה צד השרת (קוד ה-PHP) אשר בעצם מהווה את העיקר ללמידה שלנו. נראה כיצד אנו מתחברים לשרת ה-MySQL, שולפים רשומות, מוסיפים רשומות וכו'.
בכדי שנתחיל בכתיבת צד השרת עלינו להוריד את קוד המקור. נוריד את קוד המקור מהקישור הבא.
נחלץ את תוכן הארכיון לתוך תיקיית ה-www (לחיצה ימנית על צלמית ה-EasyPHP ולחיצה על Explore תפתח את התיקייה). כפי שציינו קודם, בתיקייה זו נמצאים כל קבצי האתר שלנו.
נעבור על הקבצים והתיקיות שחילצנו:
- תיקיית ה-Images – תיקייה המכילה את כל התמונות הקשורות לעיצוב הדף.
- מסמך ה-index.php – מסמך זה הוא הדף הראשי שאליו ניגש לספר האורחים שלנו. כרגע הוא מכיל רק קוד HTML ואזורי קוד של PHP פתוחים (אשר נכתוב בהמשך).
- site_layout.css – מסמך CSS המכיל את כל הקוד האחראי לעיצוב המסמך.
כעת נפתח את המסמך העיקרי (והיחיד) שעליו נעבוד – מסמך ה-index.php. כאשר נפתח את המסמך נשים לב כי ישנם אזורי PHP עם הערות. באזורים הללו נכתוב את הקוד אשר ירוץ על צד השרת.
כעת המסמך שלנו לא מריץ שום קוד על צד השרת ולא שואב אף מידע ממסד הנתונים. לכן העמוד שלנו יראה פחות או יותר כך:
נתחיל בכתיבת קוד ה-PHP. בכדי לשאוב מידע מן השרת עלינו קודם כול להתחבר אליו. את החיבור נעשה עוד בתחילת הדף ונסגור אותו בסוף הדף. בכדי להתחבר למסד הנתונים שלנו עלינו לדעת את הפרטים הבאים:
- שם המשתמש והסיסמא שבו ניגש למסד הנתונים (שאותו יצרנו באמצעות PhpMyAdmin).
- כתובת שרת מסד הנתונים. במקרה שלנו מסד הנתונים רץ באופן לוקאלי על אותו המחשב ולכן כתובתו תהיה "localhost".
- שם מסד הנתונים שממנו אנו רוצים לשאוב את המידע. במקרה שלנו קוראים למסד הנתונים "guestbook".
לכן, הקוד בתחילת הדף יראה כך:
/* Connecting to the DB so we can send queries to the server */
/* Information required to connect MySQL DB */
$db_username = "Shynet";
$db_password = "123456";
$db_name = "guestbook";
/* Connecting to the DB */
mysql_connect("localhost", $db_username, $db_password) or die(mysql_error());
mysql_select_db($db_name);
?>
שימו לב ששלושת המשתנים הראשונים מכילים את המידע אותו ציינו: שם המשתמש ($db_username), הסיסמא ($db_password) ושם מסד הנתונים ($db_name). באמצעות הפונקצייה mysql_connect אנו מתחברים לשרת ה-DB. לאחר מכן פונקציית ה-mysql_select_db מצביעה על מסד הנתונים שעליו אנו רוצים להריץ את השאילתות.
כעת נעבור לתחתית העמוד וניראה אזור PHP עם הערה שבה רשום "Closing MySQL Connection". באזור זה נוסיף את הקוד הבא:
//Closing MySQL connection
mysql_close();
?>
הפונקציה mysql_close סוגרת את החיבור למסד הנתונים. נוסיף את קטע הקוד האחראי להצגת תגובות המשתמשים. את קטע קוד זה נוסיף תחת כותרת ה-User Comments היכן שהערת ה-"We obtain user comments by contacting the SQL DB" מופיעה.
באזור ה-PHP הקיים נוסיף את השורות הבאות:
//Running a query to pull user comments from the DB
$result = mysql_query("SELECT id, date, username, content FROM comments ORDER BY date") or die(mysql_error());
//Going through all comments
while ($row = mysql_fetch_array($result)) {
$username = $row['username'];
$date = $row['date'];
$content = $row['content'];
?>
<div class="comment">
<span class="comment_username"><?php echo "$username, $date"; ?> </span>
<span class="comment_content"><?php echo $content; ?></span>
</div>
<?php
}
?>
נעבור על קטע הקוד:
-
בתחילת הקוד אנו מריצים שאילתה על מסד הנתונים באמצעות פונקציית ה-mysql_query. הפרמטר שפונקציה זו מקבלת הוא מחרוזת. מחרוזת זו היא בעצם תחביר ה-SQL שלמדנו בתחילת המדריך. שימו לב כי את תוצאות השאילתה הכנסנו למשתנה $result. בנוסף שימו לב שבסוף השורה מופיע קטע הקוד: "or die(mysql_error())" שאומר שברגע שמתרחשת שגיאה עם קטע הקוד שהרצנו, עלינו להפסיק להריץ את הקוד ולהציג את השגיאה שהתרחשה.
-
תחביר ה-SQL שבו אנו משתמשים ניראה כך:
SELECT id, date, username, content FROM comments ORDER BY dateמה שבעצם אנו אומרים לשרת ה-DB הוא שאנו מעוניינים לשלוף רשומות מטבלת ה-comments. אנו אומרים לשרת כי אנו מעוניינים לשלוף את השדות שצוינו מכול רשומה (id, date, username, content). ולבסוף אנו אומרים שהמידע יסודר לפי התאריך ולכן השתמשנו בתחביר ה-ORDER BY date.
- לאחר מכן אנו עוברים על כל הרשומות שהתקבלו באמצעות לולאת ה-While. פונקציית ה-mysql_fetch_array שולפת לנו בכל פעם רשומה מתוך השאילתה שהרצנו. הפרמטר שהפונקציה מקבלת הוא תוצאת השאילתה שהרצנו, שהוא בעצם כמו שציינו משתנה ה-$result. הלולאה תמשיך לרוץ כל עוד קיימות רשומות. אם נסתכל על התנאי ניראה שבתנאי שלנו משתנה ה-$row מקבל את הרשומה שנשלפה.
- כעת, מתוך הרשומה שנשלפה ונמצאת בתוך משתנה ה-$row נשלוף את הנתונים הנחוצים לנו. ניצור משתנה לכל שדה שאנו רוצים להציג, בכדי להקל עלינו בהצגתם בהמשך. למשל – אם נסתכל ניראה שהמשתנה $username מקבל את הערך של השדה username מתוך הרשומה שנשלפה.
- כעת ניכנס לקטע שבו אנו כותבים את קוד ה-HTML האחראי להציג את התגובה. במקרה שלנו סגרנו את תגית ה-PHP והתחלנו לכתוב את קוד ה-HTML.
כל תגובה עטפנו ב-div. את שם המשתמש והתאריך עטפנו ב-span המתאים. את תוכן התגובה עטפנו גם ב-span המתאים. קוד HTML של תגובה אמור להיראות כך:
<span class="comment_username">Shynet, 2012-03-16 </span>
<span class="comment_content">Nice project!</span>
</div>
שימו לב שקוד ה-HTML של התגובה הנ"ל הוא לאחר שליפת הרשומה ממסד הנתונים. הנתונים המופיעים בתוך תגיות ה-Span (שם המשתמש והתאריך למשל) יתחלפו עם קוד PHP שאחראי לשליפת המידע:
<span class="comment_username"><?php echo "$username, $date"; ?> </span>
<span class="comment_content"><?php echo $content; ?></span>
</div>
הקוד המופיע בתוך תבנית ה-HTML הוא בעצם האחראי להדפיס את אותם המשתנים המבטאים את השדות מתוך הרשומה ששלפנו.
- לבסוף, נפתח שוב את תגיות ה-PHP בכדי לסגור את לולאת ה-While כמו שצריך ונסגור אותם.
מדריך טוב
אני לא מסכים עם הכותרת שלו.
זה לא מדריך לSQL, זה יותר איך לעבוד עם SQL.
זה אותו דבר.