php / שיעור 2 / קישור חכם
שיעור 2
קישור חכם
עכשיו אנחנו הולכים לקחת את עצמת הלולאות שצברנו ולהשתמש בה בשטח. אבל
לפני שנמשיך, חשוב שתדעו איך לעבוד עם טפסים, מחרוזות שאילתא ושיטות
ה-GET וה-POST. ג'יי כיסה את כל זה לא מזמן, אז לכו תקראו את המאמר שלו
אם משהו פה נשמע לכם לא מוכר.
עכשיו אני הולך לעבוד עם מחרוזת שאילתא. כמו שאתם אמורים לדעת, ישנן
שלוש דרכים להכניס מידע לתוך מחרוזת שאילתא. הראשונה היא שימוש ב-GET.
השניה היא הכנסת המידע ישירות לתוך URL בשרת שלכם. והשלישית היא שילוב
מחרוזת השאילתא בקישור סטנדרטי. פשוט הפכו את תווית העוגן למשהו בסגנון:
<a href="http://my_machine/mypage.php3?id=1">.
זה מה שאנחנו הולכים לעשות עכשיו.
דבר ראשון, בואו נתשאל את מאגר המידע שלנו שוב ונרשום את שמות כל
העובדים שלנו. הביטו בסקריפט הבא. רוב מה שכתוב פה אמור להיראות לכם
מוכר בשלב הזה.
<html>
<body>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM employees",$db);
if ($myrow = mysql_fetch_array($result)) {
do {
printf("<a href=\"%s?id=%s\">%s %s</a><br>\n",
$PHP_SELF, $myrow["id"], $myrow["first"],
$myrow["last"]);
} while ($myrow = mysql_fetch_array($result));
} else {
echo "Sorry, no records were found!";
}
?>
</body>
</html>
הכל די דומה מלבד פונקצית ה-printf, אז בואו נביט בה לעומק.
שימו לב שלכל סימן מירכאות מקדים קו נטוי. הקו הנטוי אומר ל-PHP להתייחס
למה שאחריו כמשהו שיש להציג, במקום כחלק מהקוד. שימו לב גם לשימוש במשתנה PHP_SELF$. המשתנה הזה, האוצר את שם הסקריפט והמיקום שלו, מועבר יחד
עם כל עמוד PHP. הוא די שימושי פה כי אנחנו רוצים שהקובץ יקרא לעצמו.
שימוש ב-PHP_SELF$ יבטיח שזה יקרה, אפילו אם הקובץ יועבר לספרייה אחרת,
או אפילו למחשב אחר.
כפי שציינתי לפני רגע, הקישורים האלה יקראו לעמוד מחדש. אך בפעם השניה
יתווסף מעט מידע למחרוזת השאילתא.
PHP עושה משהו די מגניב כשהיא רואה התאמת שם = ערך במחרוזת שאילתא.
היא אוטומטית יוצרת משתנה עם השם והערך שצוינו. הישום הזה מאפשר לנו
לבחון האם זאת הפעם הראשונה או השניה שהעמוד הזה עולה. כל שעלינו לעשות
הוא לשאול את PHP אם המשתנה id$ קיים.
ברגע שאני יודע את התשובה לשאלה הזאת, אני יכול להציג מערך שונה של מידע
בפעם השניה. אני עושה את זה כך:
<html>
<body>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
// display individual record
if ($id) {
$result = mysql_query("SELECT * FROM employees
WHERE id=$id",$db);
$myrow = mysql_fetch_array($result);
printf("First name: %s\n<br>", $myrow["first"]);
printf("Last name: %s\n<br>", $myrow["last"]);
printf("Address: %s\n<br>", $myrow["address"]);
printf("Position: %s\n<br>", $myrow["position"]);
} else {
// show employee list
$result = mysql_query("SELECT * FROM employees",$db);
if ($myrow = mysql_fetch_array($result)) {
// display list if there are records to display
do {
printf("<a href=\"%s?id=%s\">%s %s</a><br>\n",
$PHP_SELF, $myrow["id"], $myrow["first"],
$myrow["last"]);
} while ($myrow = mysql_fetch_array($result));
} else {
// no records to display
echo "Sorry, no records were found!";
}
}
?>
</body>
</html>
הקוד הזה נעשה מסובך עכשיו, אז התחלתי להשתמש בהערות כדי לעקוב אחרי
מהלך העניינים. אתם יכולים להשתמש ב//- עבור הערות בנות שורה אחת או
ב-*/ ו-/* כדי לתחום בלוק הערות גדול.
אז הנה זה: סקריפט ה-PHP/MySQL היעיל באמת הראשון שלכם! עכשיו בואו
נראה איך אנחנו מוסיפים טפסים לתערובת ושולחים מידע חזרה למאגר.
עמוד הבא: הוסיפו כמה טפסים >>
|