從網頁頁面上對數據庫進行更改,連接着之前做的增、刪、查。
1.先做一個修改頁面
<body> <!--這個頁面需要讓用戶看到一些數據,所以不是一個純php頁面,頁面效果和增加頁面的效果非常相似,直接把增加頁面的代碼復制過來-->
<?php //先嵌入php代碼查詢數據庫 $code = $_GET["c"];//取到點擊修改時傳過來的c的值 $db = new MySQLi("localhost","root","666","text1");//直接把下面的造連接對象拿到上面,一個頁面造一個就可以。 //寫sql語句,下面有$sql了,這里就寫$info。 $sinfo = "select * from info where code='{$code}'";//根據主鍵值查的,只能查到一條數據。 $rinfo = $db->query($sinfo); $ainfo = $rinfo->fetch_row();//取到數組 ?>
<form action="xiugaichuli.php" method="post"><!--表單提交到xiugaichuli.php頁面。--> <div><input type="hidden" name="code" value="<?php echo $ainfo[0]; ?>" /></div><!--代號的默認的value的值顯示為要更改的那條數據的代號的值,要輸出才可以,不輸出就為空。主鍵一般是不允許修改的,可以給它加上屬性readonly="readonly"。不能用disabled=disabled,因為設定這個屬性后表單無法提交。如果主鍵值是自增長列或者其它沒有意義的列,可以直接隱藏,直接type=hidden,雖然隱藏掉了,但是還可以提交--> <div>姓名:<input type="text" name="name" value="<?php echo $ainfo[1]; ?>" /></div><!--原理同代號--> <!--性別和民族無法直接給定值,需要根據值來選定哪一個--> <!--性別是波爾型數據,要么0要么1.php里面的代碼的作用是取出$info里面的代碼,判斷性別是true還是flase,是true的話就輸出屬性checked="checked",是flase就輸出空--> <div>性別: <input type="radio" name="sex" value="1" <?php echo $ainfo[2]?"checked = 'checked'":"" ?> />男 <input type="radio" name="sex" value="0" <?php echo $ainfo[2]?"":"checked = 'checked'" ?> />女 </div> <!--民族是下拉列表,下拉列表選中是用屬性selected=selected,下拉選項是用foreach遍歷出來的,在輸出之前可以判斷要修改的人的代號是不是等於要輸出的這一項的代號--> <div>民族: <select name="nation">
<?php //造連接對象 $sql = "select * from nation"; $result = $db->query($sql); $attr = $result->fetch_all(); foreach($attr as $v)//判斷要修改的人的代號是不是等於要輸出的這一項的代號 { if($v[0]==$ainfo[3]) { echo "<option selected='selected' value='$v[0]'>{$v[1]}</option>";//相等就輸出一個selected='selected'的選項 } else { echo "<option value='$v[0]'>{$v[1]}</option>";//不相等就輸出一個正常的選項 } } ?>
</select> </div> <div>生日:<input type="text" name="birthday" value="<?php echo $ainfo[4]; ?>" /></div><!--原理同代號--> <div><input type="submit" value="修改" /></div> </form> </body>
2.xiugaichuli.php頁面
<?php $code = $_POST["code"];//取出提交的5個值 $name = $_POST["name"]; $sex = $_POST["sex"]; $nation = $_POST["nation"]; $birthday = $_POST["birthday"]; //造連接對象 $db = new MySQLi("localhost","root","666","text1"); $sql = "update info set name='{$name}',sex={$sex},nation='{$nation}',birthday='{$birthday}' where code='{$code}'";//修改的時候無論修改了幾個,全部都要修改成現在輸入的。 $db->query($sql); header("location:main.php");