php / שיעור 2 / הפכו את הטפסים שלכם לחכמים יותר
שיעור 2
הפכו את הטפסים שלכם לחכמים יותר
לאורך ערכת הלימוד הזאת, הכנסתי את ביטוי ה-SQL לתוך משתנה ($sql) לפני
שיריתי את השאילתא על המאגר בעזרת ()mysql_query. זה נוח כדי להפטר
מבאגים. אם משהו הולך לא כשורה, אתם תמיד יכולים להחזיר את ה-SQL למסך
כדי לחפש בו טעויות.
אנחנו כבר יודעים איך להכניס מידע למאגר. עכשיו בואו ננסה לשנות רשימות שכבר
קיימות בו. עריכת מידע כוללת שני מרכיבים שכבר ראינו: הצגת מידע על המסך
ושליחת המידע חזרה למאגר דרך תשומת טופס. עם זאת, העריכה היא קצת שונה
במובן שעלינו לוודא שאנחנו מציגים את המידע הנכון בטופס.
דבר ראשון, בואו נמחזר את הקוד משיעור 1 כדי להציג את שמות העובדים על גבי
העמוד שלנו. אבל הפעם, אנחנו הולכים למלא את הטופס שלנו עם מידע על
משתמשים. זה אמור להיראות בערך כך:
<html>
<body>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
if ($id) {
// query the DB
$sql = "SELECT * FROM employees WHERE id=$id";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
?>
<form method="post" action="<?php echo $PHP_SELF?>">
<input type=hidden name="id" value="<?php echo
$myrow["id"] ?>">
First name:<input type="Text" name="first" value="<?php
echo $myrow["first"] ?>"><br>
Last name:<input type="Text" name="last" value="<?php
echo $myrow["last"] ?>"><br>
Address:<input type="Text" name="address" value="<?php
echo $myrow["address"] ?>"><br>
Position:<input type="Text" name="position" value="<?php
echo $myrow["position"] ?>"><br>
<input type="Submit" name="submit" value="Enter
information">
</form>
<?php
} else {
// display list of employees
$result = mysql_query("SELECT * FROM employees",$db);
while ($myrow = mysql_fetch_array($result)) {
printf("<a href=\"%s?id=%s\">%s %s</a><br>\n",
$PHP_SELF, $myrow["id"], $myrow["first"],
$myrow["last"]);
}
}
?>
</body>
</html>
הרגע שמנו את מידע השדה לתוך מאפיין value של אותו מרכיב, מה שהיה די
פשוט. בואו נבנה על זה עוד קצת. אנחנו נוסיף את האפשרות לשלוח ולערוך קוד
חזרה למאגר. שוב, אנחנו הולכים להשתמש בכפתור submit כדי לבחון האם
עלינו לעבד את תשומת הטופס. שימו לב גם לביטוי ה-SQL השונה במעט בו
אנו משתמשים.
<html>
<body>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
if ($id) {
if ($submit) {
$sql = "UPDATE employees SET
first='$first',last='$last',address='$address',
position='$position' WHERE id=$id";
$result = mysql_query($sql);
echo "Thank you! Information updated.\n";
} else {
// query the DB
$sql = "SELECT * FROM employees WHERE id=$id";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
?>
<form method="post" action="<?php echo
$PHP_SELF?>">
<input type=hidden name="id" value="<?php echo
$myrow["id"] ?>">
First name:<input type="Text" name="first"
value="<?php echo $myrow["first"] ?>"><br>
Last name:<input type="Text" name="last" value="<?php
echo $myrow["last"] ?>"><br>
Address:<input type="Text" name="address"
value="<?php echo $myrow["address"] ?>"><br>
Position:<input type="Text" name="position"
value="<?php echo $myrow["position"] ?>"><br>
<input type="Submit" name="submit" value="Enter
information">
</form>
<?php
}
} else {
// display list of employees
$result = mysql_query("SELECT * FROM employees",$db);
while ($myrow = mysql_fetch_array($result)) {
printf("<a href=\"%s?id=%s\">%s %s</a><br>\n",
$PHP_SELF, $myrow["id"], $myrow["first"],
$myrow["last"]);
}
}
?>
</body>
</html>
וזהו זה. הצלחנו לשלב את רוב הישומיים שראינו לתוך סקריפט אחד. אתם גם
יכולים לראות איך השתמשנו בביטוי ()if אחד בתוך ביטוי ()if אחר כדי לבדוק
תנאי מרובים.
הגיע הזמן לשים הכל יחד ולקבל סקריפט לא נורמלי.
עמוד הבא: כולם יחד >>
|
|
|
|