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 היעיל באמת הראשון שלכם! עכשיו בואו נראה איך אנחנו מוסיפים טפסים לתערובת ושולחים מידע חזרה למאגר.



עמוד הבא: הוסיפו כמה טפסים >>




הקדמה
שעור 1
הקדמה PHP ו-MySQL
התקנת MySQL
התקנת PHP
הסקריפט הראשון שלכם
הטענת מאגר המידע
שליפה מחדש
שעור 2
לולאות
השארו מיודעים
קישור חכם >
הוסיפו כמה טפסים
הפיכת טפסים לחכמים
כולם יחד
שעור 3
מקום לכל דבר
אימות פשוט
אמות לא כל כך פשוט
פונקציות
עדות לאום