-
-
Save summer10920/bfae831ea8371a32c84ef1c16cf538c6 to your computer and use it in GitHub Desktop.
20200513-php-sampleclass-1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// print_r($_POST); | |
if(!empty($_POST)){ | |
$sql = "INSERT INTO ch8_animal VALUES(NULL,'".$_POST['name']."',".$_POST['weight'].",'".$_POST['info']."',NOW())"; //step1 先做好SQL語言 | |
$db->query($sql); //執行語法,透過PDO物件導向到query | |
header("location:?page=show_all"); | |
} | |
?> | |
<div style="width:50%;margin:0 auto;background-color:#eee;text-align:center;padding:2% 5%"> | |
<h1>新增動物資料ver1</h1> | |
<form method="post"> | |
<h3>動物名<br><input type="text" name="name" style="width:50%"></h3> | |
<h3>重量 <br><input type="number" name="weight" style="width:50%"></h3> | |
<h3>介紹 <br> | |
<textarea name="info" rows="10" style="width:50%"></textarea> | |
</h3> | |
<input type="submit" value="新增"> | |
<input type="reset" value="重置"> | |
</form> | |
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// print_r($_POST); | |
if(!empty($_POST)){ | |
//$sql = "INSERT INTO ch8_animal VALUES(NULL,'".$_POST['name']."',".$_POST['weight'].",'".$_POST['info']."',NOW())"; //step1 先做好SQL語言 | |
//$sql = "UPDATE ch8_animal SET name='".$_POST['name']."', weight=".$_POST['weight'].", info='".$_POST['info']."' WHERE id=".$_POST['id']; | |
$sql="DELETE FROM `ch8_animal` WHERE id=".$_POST['id']; | |
$db->query($sql); //執行語法,透過PDO物件導向到query | |
header("location:?page=show_all"); | |
} | |
?> | |
<div style="width:50%;margin:0 auto;background-color:#eee;text-align:center;padding:2% 5%"> | |
<h1>刪除動物資料ver1</h1> | |
<form method="post"> | |
<h3>編號<br><input type="number" name="id" style="width:50%"></h3> | |
<input type="submit" value="刪除"> | |
<input type="reset" value="重置"> | |
</form> | |
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$sql="SELECT * FROm ch8_animal"; | |
$row=$db->query($sql)->fetchAll(); | |
?> | |
<table width=100%> | |
<tr> | |
<td>編號</td> | |
<td>動物名</td> | |
<td>重量</td> | |
<td>簡介</td> | |
<td>更新日期</td> | |
</tr> | |
<?php | |
foreach($row as $data){ | |
?> | |
<tr> | |
<td><?=$data['id']?></td> | |
<td><?=$data['name']?></td> | |
<td><?=$data['weight']?></td> | |
<td><?=$data['info']?></td> | |
<td><?=$data['date']?></td> | |
</tr> | |
<?php | |
} | |
?> | |
</table> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// print_r($_POST); | |
if (!empty($_POST)) { | |
//$sql = "INSERT INTO ch8_animal VALUES(NULL,'".$_POST['name']."',".$_POST['weight'].",'".$_POST['info']."',NOW())"; //step1 先做好SQL語言 | |
$sql = "UPDATE ch8_animal SET name='" . $_POST['name'] . "', weight=" . $_POST['weight'] . ", info='" . $_POST['info'] . "', date=NOW() WHERE id=" . $_POST['id']; | |
$db->query($sql); //執行語法,透過PDO物件導向到query | |
header("location:?page=show_all"); | |
} | |
?> | |
<div style="width:50%;margin:0 auto;background-color:#eee;text-align:center;padding:2% 5%"> | |
<h1>修改動物資料ver1</h1> | |
<form method="post"> | |
<h3>編號<br><input type="number" name="id" style="width:50%"></h3> | |
<h3>動物名<br><input type="text" name="name" style="width:50%"></h3> | |
<h3>重量 <br><input type="number" name="weight" style="width:50%"></h3> | |
<h3>介紹 <br> | |
<textarea name="info" rows="10" style="width:50%"></textarea> | |
</h3> | |
<input type="submit" value="修改"> | |
<input type="reset" value="重置"> | |
</form> | |
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
if(!empty($_GET['mdy'])) $layout="mdy"; | |
else $layout="list"; 可成為三元運算子 | |
*/ | |
$layout = (!empty($_GET['mdy'])) ? "mdy" : "list"; | |
switch ($layout) { | |
case 'list': | |
include_once('2_main.php'); | |
break; | |
case 'mdy': | |
include_once('2_mdy.php'); | |
break; | |
} | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if (!empty($_POST)) { //如果需要新增資料 | |
$sql = "INSERT INTO ch8_animal VALUES(NULL,'" . $_POST['name'] . "'," . $_POST['weight'] . ",'" . $_POST['info'] . "',NOW())"; //step1 先做好SQL語言 | |
$db->query($sql); //執行語法,透過PDO物件導向到query | |
//如果你擔心F5會一直刷新增,可以強迫轉址把POST洗掉 | |
header("location:?page=crud_animal"); | |
} | |
if(!empty($_GET['del'])){ //這裡因為GET不只一個變數,所以我們指到陣列裡面的變數 | |
$sql="DELETE FROM `ch8_animal` WHERE id=".$_GET['del']; | |
$db->query($sql); //執行語法,透過PDO物件導向到query | |
header("location:?page=crud_animal"); | |
} | |
$sql = "SELECT * FROm ch8_animal"; //帶出所有資料 | |
$row = $db->query($sql)->fetchAll(); | |
?> | |
<table width=100%> | |
<tr> | |
<td>編號</td> | |
<td>動物名</td> | |
<td>重量</td> | |
<td>簡介</td> | |
<td>更新日期</td> | |
<td>操作</td> | |
</tr> | |
<!--start--> | |
<tr> | |
<td colspan=6> | |
<hr> | |
</td> | |
</tr> | |
<form method="post"> | |
<tr> | |
<td>#</td> | |
<td><input type="text" name="name"></td> | |
<td><input type="number" name="weight"></td> | |
<td><input type="text" name="info" style="width:100%"></td> | |
<td><?= date("Y-m-d H:i:s") ?></td> | |
<td> | |
<input type="submit" value="新增"> | |
<input type="reset" value="重置"> | |
</td> | |
</tr> | |
</form> | |
<tr> | |
<td colspan=6> | |
<hr> | |
</td> | |
</tr> | |
<!--end--> | |
<?php | |
foreach ($row as $data) { | |
?> | |
<tr> | |
<td><?= $data['id'] ?></td> | |
<td><?= $data['name'] ?></td> | |
<td><?= $data['weight'] ?></td> | |
<td><?= $data['info'] ?></td> | |
<td><?= $data['date'] ?></td> | |
<td> | |
<button onclick="location.href='?page=crud_animal&mdy=<?= $data['id'] ?>'">修改</button> | |
<button onclick="location.href='?page=crud_animal&del=<?= $data['id'] ?>'">刪除</button> | |
</td> | |
</tr> | |
<?php | |
} | |
?> | |
</table> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if (!empty($_POST)) { //如果取得POST,進行修改上傳 | |
echo $sql = "UPDATE ch8_animal SET name='" . $_POST['name'] . "', weight=" . $_POST['weight'] . ", info='" . $_POST['info'] . "', date=NOW() WHERE id=" . $_GET['mdy']; | |
$db->query($sql); //執行語法,透過PDO物件導向到query | |
header("location:?page=crud_animal"); //更新完轉走 | |
} | |
$sql = "SELECT * FROm ch8_animal WHERE id=" . $_GET['mdy']; //帶出指定之資料,為了塞預設值 | |
$row = $db->query($sql)->fetch(); | |
?> | |
<div style="width:50%;margin:0 auto;background-color:#eee;text-align:center;padding:2% 5%"> | |
<h1>修改動物資料ver2</h1> | |
<form method="post"> | |
<h3>編號<?= $row['id'] ?></h3> | |
<h3>動物名<br><input type="text" name="name" style="width:50%" value="<?= $row['name'] ?>"></h3> | |
<h3>重量 <br><input type="number" name="weight" style="width:50%" value="<?= $row['weight'] ?>"></h3> | |
<h3>介紹 <br> | |
<textarea name="info" rows="10" style="width:50%"><?= $row['info'] ?></textarea> | |
</h3> | |
<input type="submit" value="修改"> | |
<input type="reset" value="重置"> | |
</form> | |
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if (!empty($_POST) && !is_array($_POST['name'])) { //這是新增來的 | |
$sql = "INSERT INTO ch8_animal VALUES(NULL,'" . $_POST['name'] . "'," . $_POST['weight'] . ",'" . $_POST['info'] . "',NOW())"; //step1 先做好SQL語言 | |
$db->query($sql); //執行語法,透過PDO物件導向到query | |
header("location:?page=crud_page"); | |
} | |
if (!empty($_POST) && is_array($_POST['name'])) { //這是從集體修改來的 | |
// print_r($_POST); | |
foreach ($_POST['name'] as $key => $value) { //目的是為了取得id | |
$chg = ""; | |
if ($_POST['name'][$key] != $_POST['old_name'][$key]) $chg .= "name='" . $_POST['name'][$key] . "',"; //如果有變化就加入chg行列 | |
if ($_POST['weight'][$key] != $_POST['old_weight'][$key]) $chg .= "weight=" . $_POST['weight'][$key] . ","; //如果有變化就加入chg行列 | |
if ($_POST['info'][$key] != $_POST['old_info'][$key]) $chg .= "info='" . $_POST['info'][$key] . "',"; //如果有變化就加入chg行列 | |
if (!empty($chg)) { //如果chg不是空的,執行更新語法順便調整date | |
$sql = "UPDATE `ch8_animal` SET " . $chg . "date=NOW() WHERE id=" . $key . ";"; | |
$db->query($sql); //執行語法,透過PDO物件導向到query | |
} | |
} | |
header("location:?page=crud_page&np=".$_GET['np']); | |
} | |
if (!empty($_GET['del'])) { //這裡因為GET不只一個變數,所以我們指到陣列裡面的變數 | |
$sql = "DELETE FROM `ch8_animal` WHERE id=" . $_GET['del']; | |
$db->query($sql); //執行語法,透過PDO物件導向到query | |
header("location:?page=crud_page"); | |
} | |
//for read | |
//算出page navbar how many | |
$sql = "SELECT COUNT(*) FROM ch8_animal"; //會取得資料有幾筆 | |
$row = $db->query($sql)->fetch(); | |
$total = $row[0]; //算出一共有幾筆資料 | |
/*//如果是用下列方式,這樣就是吃效能 | |
$sql="SELECT * FROM ch8_animal"; | |
$row=$db->query($sql)->fetchAll(); | |
$total=count($row); | |
*/ | |
$many = ceil($total / 5); //算出這些資料需要用幾頁來呈現 | |
//算出limit begin | |
$nowpage = (empty($_GET['np'])) ? 1 : $_GET['np']; //需要知道目前是第幾頁 | |
$begin = ($nowpage - 1) * 5; // limit 0 -> page1 , limit 5 ->page2 | |
//做出NavBar array | |
$pageNav["<"] = ($nowpage == 1) ? 1 : $nowpage - 1; | |
for ($i = 1; $i <= $many; $i++) $pageNav[$i] = $i; //做一個導覽陣列 | |
$pageNav[">"] = ($nowpage == $many) ? $many : $nowpage + 1; | |
//read by limit | |
$sql = "SELECT * FROM ch8_animal LIMIT " . $begin . ",5"; | |
$row = $db->query($sql)->fetchAll(); | |
?> | |
<table width=100%> | |
<tr> | |
<td>編號</td> | |
<td>動物名</td> | |
<td>重量</td> | |
<td>簡介</td> | |
<td>更新日期</td> | |
<td align=center>操作</td> | |
</tr> | |
<!--start--> | |
<tr> | |
<td colspan=6> | |
<hr> | |
</td> | |
</tr> | |
<form method="post"> | |
<tr> | |
<td>#</td> | |
<td width=10%><input type="text" name="name"></td> | |
<td width=10%><input type="number" name="weight"></td> | |
<td width=60%><input type="text" name="info" style="width:100%"></td> | |
<td width=10%><?= date("Y-m-d H:i:s") ?></td> | |
<td align=center> | |
<input type="submit" value="新增"> | |
<input type="reset" value="重置"> | |
</td> | |
</tr> | |
</form> | |
<tr> | |
<td colspan=6> | |
<hr> | |
</td> | |
</tr> | |
<!--end--> | |
<form method="post"> | |
<?php | |
foreach ($row as $data) { | |
?> | |
<tr> | |
<td> | |
<?= $data['id'] ?> | |
</td> | |
<td> | |
<input type="text" name="name[<?= $data['id'] ?>]" value="<?= $data['name'] ?>"> | |
<input type="hidden" name="old_name[<?= $data['id'] ?>]" value="<?= $data['name'] ?>"> | |
</td> | |
<td> | |
<input type="number" name="weight[<?= $data['id'] ?>]" value="<?= $data['weight'] ?>"> | |
<input type="hidden" name="old_weight[<?= $data['id'] ?>]" value="<?= $data['weight'] ?>"> | |
</td> | |
<td> | |
<input type="text" name="info[<?= $data['id'] ?>]" style="width:100%" value="<?= $data['info'] ?>"> | |
<input type="hidden" name="old_info[<?= $data['id'] ?>]" style="width:100%" value="<?= $data['info'] ?>"> | |
</td> | |
<td><?= $data['date'] ?></td> | |
<td align=center> | |
<button onclick="location.href='?page=crud_page&del=<?= $data['id'] ?>'">X</button> | |
</td> | |
</tr> | |
<?php | |
} | |
?> | |
<tr> | |
<td colspan=6 align=center> | |
<p><?php | |
foreach ($pageNav as $key => $value) echo ' <a href="?page=crud_page&np=' . $value . '">' . $key . '</a> '; | |
?></p> | |
<input type="submit" value="全部更新"> | |
</td> | |
</tr> | |
</form> | |
</table> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$db = new PDO("mysql:host=127.0.0.1;dbname=php_study;charset=utf8", "root", ""); | |
if (!empty($_GET['page'])) $body = $_GET['page']; | |
else $body = 'main'; | |
//如果不想讓人知道php的檔案名稱,就多一個判斷來做文字對應 | |
switch ($body) { | |
case 'main': | |
$myurl = "main.php"; | |
break; | |
case 'show_all': | |
$myurl = "1_list.php"; | |
break; | |
case 'add_animal': | |
$myurl = "1_add.php"; | |
break; | |
case 'mdy_animal': | |
$myurl = "1_mdy.php"; | |
break; | |
case 'del_animal': | |
$myurl = "1_del.php"; | |
break; | |
case 'crud_animal': | |
$myurl = "2_list.php"; | |
break; | |
case 'crud_page': | |
$myurl = "3_list.php"; | |
break; | |
} | |
?> | |
<button onclick="document.location.href='./'">回首頁</button> | |
<form method="GET"> | |
<p> | |
<button name="page" value="show_all">顯示(1)</button> | |
<button name="page" value="add_animal">新增(1)</button> | |
<button name="page" value="mdy_animal">修改(1)</button> | |
<button name="page" value="del_animal">刪除(1)</button> | |
</p> | |
</form> | |
<p><button onclick="document.location.href='?page=crud_animal'">CRUD(2)</button></p> | |
<p><button onclick="document.location.href='?page=crud_page'">CRUD(3)</button></p> | |
<hr /> | |
<?php | |
include($myurl); | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<h1>這裡是主畫面內容</h1> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment