羅德興老師的教學歷程檔案 - 112-2 資料庫管理系統 (DBMS) - Unit 5- MySQL-SELECT-PHP-新增-查詢-刪除 |
|
|
Unit 5- MySQL-SELECT-PHP-新增-查詢-刪除Unit 5- MySQL-SELECT-PHP-新增-查詢-刪除<select的語法格式 選擇 : <select name='choice' size=1> <option value='資管三甲'>資管三甲</option> <option value='資管三乙'>資管三乙</option> <option value='資管三丙'>資管三丙'</option> </select> 壹、建立 www/mydb/select.sql 儲存建立資料庫與表的命令 DROP DATABASE IF EXISTS mydb; CREATE DATABASE mydb DEFAULT CHARACTER SET utf8; USE mydb; CREATE TABLE stmd ( depart_class CHAR(4) COMMENT '甲班、乙班、丙班、丁班', student_no CHAR(3) COMMENT '1號、2號、3號、4號', student_name CHAR(4) COMMENT '陳生、林生、張生、謝生', address CHAR(4) COMMENT '台北、新北、台中、高雄', primary key(depart_class,student_no,student_name,address) ); 貳、建立PHP程式 www/mydb/select.php <?php include "config.php"; // 連線組態 if (isset($_POST["command"])) $command=$_POST["command"]; else $command=""; if ($command=="") { display_first_page($conn); } elseif ($command=="新增") { display_insert_page($conn); display_first_page($conn); } elseif ($command=="查詢") { display_search_page($conn); } mysqli_close($conn); function display_first_page($conn) { // 第一個頁面 echo "<html><head><title>MySql與PHP結合-SELECT-新增-查詢-範例</title> <link rel='stylesheet' type='text/css' href='style.css'> </head><body><center> <table> <form method='post' action=''> <tr class='alt0'><td colspan=2>MySql與PHP結合-SELECT-新增-查詢-範例</td></tr> <tr><td class='alt1'>學號</td><td> <select name='student_no' SIZE=1> <option value=''/>選擇 <option value='1號'/>1號 <option value='2號'/>2號 <option value='3號'/>3號 <option value='4號'/>4號 </select></td></tr></table> </td></tr></table> <input class='cmd' type='submit' name='command' value='查詢'> <input class='cmd' type='submit' name='command' value='新增'> </form></center></body></html>"; } function display_search_page($conn) { $student_no=trim($_POST["student_no"]); // 取得輸入的學號,移除前後空白 if ($student_no=="") $student_no="%"; // 查詢全部 else $student_no="%".$student_no."%"; // 查詢匹配的學號 $sql="select * from stmd where student_no like '$student_no' order by student_no"; $result=mysqli_query($conn,$sql); echo "<html><head><title>MySql與PHP結合-SELECT-新增-查詢-範例</title> <link rel='stylesheet' type='text/css' href='style.css'> </head><body><center> <table><form method='post' action=''> <tr class='alt0'><td colspan=5>MySql與PHP結合-SELECT-新增-查詢-範例</td></tr> <tr class='alt1'><td>學號</td></tr>"; $cnt=0; while ($myrow=mysqli_fetch_array($result)) { $student_no=$myrow["student_no"]; $bgcolor=$cnt % 2+ 2; echo "<tr class='alt$bgcolor'><td>$student_no</td></tr>"; $cnt++; } echo "</table></center></body></html>"; } function display_insert_page($conn) { $student_no=$_POST["student_no"]; if ($student_no=="") { display_first_page($conn); exit(); } $sql="insert into stmd values('','$student_no','','')"; mysqli_query($conn,$sql); } ?> 三、作業 擴充select.php程式,增加另外三個欄位 '班級代碼', '姓名', '地址', 必須做新增、查詢、刪除等功能 由於主要鍵是四個攔位組合, 因此 必須下傳四個攔位的值, 可以利用 $key="$depart_class,$student_no,$student_name,$address"; <input type='radio' name='key' value='$key' onclick=\"return confirm('確定要刪除嗎?') \" > 在display_delete_page($conn) 中, 可以取出 $key=$_POST["key"]; $key_list=explode(",",$key); $depart_class=$key_list[0]; $student_no=$key_list[1]; $student_name=$key_list[2]; $address=$key_list[3]; $sql = "delete from stmd where depart_class='$depart_class' and student_no='$student_no' and student_name='$student_name' and address='$address' "; 在前面的設計中, primary key是由四個欄位組成且沒有其他多餘的欄位, 這樣的設計沒有辦法做更新的動作 最好可以使用一種自動遞增的識別欄位作為primary key -- 建立 www/mydb/select2.sql 儲存建立資料庫與表的命令 DROP DATABASE IF EXISTS mydb; CREATE DATABASE mydb DEFAULT CHARACTER SET utf8; USE mydb; CREATE TABLE stmd ( oid INT(5) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '遞增識別碼', num1 INT COMMENT '數目1', op CHAR(1) COMMENT '+-*/', num2 INT COMMENT '數目2', result INT COMMENT '結果', primary key(oid) ); INSERT INTO stmd VALUES(null,10,'+',20,30); 底下是一個程式範例 建立建立PHP程式 www/mydb/select2.php <?php $command=$_POST["command"]; if ($command=="") { echo "<html><body><center> <form method=post action=''> <select name='num1' size=1>"; for ($i=1; $i<=15; $i++) echo "<option value=$i>$i</option>"; echo "</select> <select name=op size=1> <option value='+'>+</option> <option value='-'>-</option> <option value='*'>*</option> <option value='/'>/</option> </select> <select name='num2' size=1>"; for ($i=1; $i<=15; $i++) echo "<option value=$i>$i</option>"; echo "</select><br> <input type=submit name=command value=送出> <input type=reset name=command value=清除> </form></center></body></html>"; } elseif ($command=="送出") { $num1=$_POST["num1"]; $op=$_POST["op"]; $num2=$_POST["num2"]; if ($op=="+") $result=$num1+$num2; elseif ($op=="-") $result=$num1-$num2; elseif ($op=="*") $result=$num1*$num2; elseif ($op=="/") $result=$num1/$num2; echo "<html><body><center> $num1 $op $num2 = $result </center></body></html>"; } ?> 作業五 依照本學期的程式介面,利用前述範例改成可新增、查詢、刪除
|
|
中華科技大學數位化學習歷程 - 意見反應 |