PHP/MySQL三日通-第二天(三)

來源:互聯網
上載者:User
 五、修改資料

 

  在個教程中,我都把要執行的SQL語句放到一個變數($sql)中,然後才用mysql_query()來執行資料庫查詢。在調試時這是很有用的。如果程式出了什麼問題,您隨時可以把SQL語句的內容顯示出來,檢查其中的語法錯誤。

  我們已經學習了如何把資料插入到資料庫中。現在我們來學習如何修改資料庫中已有的記錄。資料的編輯包括兩部分:資料顯示和通過表格輸入把資料返回給資料庫,這兩部分我們前面都已經講到了。然而,資料編輯還是有一點點不同,我們必須先在表格中顯示出相關的資料。

  首先,我們回過頭再看看第一課的程式碼,在網頁中顯示員工姓名。但是這次,我們要把資料顯示在表格中。程式看起來象下面這樣:

 

  $#@60;html$#@62;

$#@60;body$#@62;

$#@60;?php

$db = mysql_connect("localhost", "root");

mysql_select_db("mydb",$db);

if ($id) {


// 查詢資料庫

$sql = "SELECT * FROM employees WHERE id=$id";

$result = mysql_query($sql);

$myrow = mysql_fetch_array($result);

?$#@62;

$#@60;form method="post" action="$#@60;?php echo $PATH_INFO?$#@62;"$#@62;

$#@60;input type=hidden name="id" value="$#@60;?php echo $myrow["id"] ?$#@62;"$#@62;

名:$#@60;input type="Text" name="first" value="$#@60;?php echo
$myrow["first"] ?$#@62;"$#@62;$#@60;br$#@62;

姓:$#@60;input type="Text" name="last" value="$#@60;?php echo
$myrow["last"] ?$#@62;"$#@62;$#@60;br$#@62;

住址:$#@60;input type="Text" name="address" value="$#@60;?php echo
$myrow["address"] ?$#@62;"$#@62;$#@60;br$#@62;

職位:$#@60;input type="Text" name="position" value="$#@60;?php echo
$myrow["position"] ?$#@62;"$#@62;$#@60;br$#@62;

$#@60;input type="Submit" name= bmit" value="輸入資訊"$#@62;

$#@60;/form$#@62;

$#@60;?php

} else {


// 顯示員工列表

$result = mysql_query("SELECT * FROM employees",$db);

while ($myrow = mysql_fetch_array($result)) {

printf("$#@60;a href=\"%s?id=%s\"$#@62;%s %s$#@60;/a$#@62;$#@60;br$#@62;\n", $PATH_INFO,
$myrow["id"], $myrow["first"], $myrow["last"]);

}

}

?$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;

  我們剛才是把欄位內容寫入到相應表格元素中的value屬性裡,這是相應簡單的。我們再往前進一步,使程式可以把使用者修改過的內容寫回資料庫去。同樣,我們通過Submit按鈕來判斷是否處理表格輸入內容。還要注意,我們用的SQL語句稍稍有些不同。

$#@60;html$#@62;

$#@60;body$#@62;

$#@60;?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 "謝謝!資料更改完成\n";

} else {


// 查詢資料庫

$sql = "SELECT * FROM employees WHERE id=$id";

$result = mysql_query($sql);

$myrow = mysql_fetch_array($result);

?$#@62;

$#@60;form method="post" action="$#@60;?php echo $PATH_INFO?$#@62;"$#@62;

$#@60;input type=hidden name="id" value="$#@60;?php echo $myrow["id"] ?$#@62;"$#@62;


名:$#@60;input type="Text" name="first" value="$#@60;?php
echo $myrow["first"] ?$#@62;"$#@62;$#@60;br$#@62;


姓:$#@60;input type="Text" name="last" value="$#@60;?php echo
$myrow["last"] ?$#@62;"$#@62;$#@60;br$#@62;


住址:$#@60;input type="Text" name="address" value="$#@60;?php echo
$myrow["address"] ?$#@62;"$#@62;$#@60;br$#@62;


職位:$#@60;input type="Text" name="position" value="$#@60;?php echo
$myrow["position"] ?$#@62;"$#@62;$#@60;br$#@62;


$#@60;input type="Submit" name="submit" value="輸入資訊"$#@62;

$#@60;/form$#@62;

$#@60;?php

}

} else {


// 顯示員工列表

$result = mysql_query("SELECT * FROM employees",$db);

while ($myrow = mysql_fetch_array($result)) {

printf("$#@60;a href=\"%s?id=%s\"$#@62;%s %s$#@60;/a$#@62;$#@60;br$#@62;\n", $PATH_INFO,
$myrow["id"], $myrow["first"], $myrow["last"]);

}

}

?$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;

  就是這樣。在這個程式中已經包含了我們學過所大多數特性。您也已經看到,我們在一個if()條件判別語句中又加了一個if()語句,來檢查多重條件。

  下面,我們要把所有東西全都加在一起,寫出一個很好的程式來。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.