后台:php,數據庫:mysql,前端:html,css,js;
主要頁面介紹:
1.php連接數據庫后台,讀取數據並將其以表格的形式顯示,並且有添加,編輯,刪除,分頁等功能;
2.php用於添加用戶的表單頁面,1.php中的添加用戶按鈕跳轉到這里;
3-add.php用於接收2.php POST過來的表單數據,加以簡單sql語言添加用戶操作;
4-del.php用於sql刪除數據操作;
5-edit.php類似2.php,用於編輯用戶信息;
6-save.php用於接收5-edit.php POST過來的表單數據,加以簡單sql語言編輯用戶信息;
page.php用於處理分頁功能;
FIRST(主要1.php頁面)
首先每個php頁面為了中文顯示不亂碼使用代碼
header('Content-type:text/html;charset=utf-8');
mysql數據庫設計細節
id設置為主鍵,並且設置為自動遞增,birth設置為日期date
pdo連接數據庫,獲取所有數據
$dsn = 'mysql:dbname=user_messages;host=localhost'; $user = 'root'; $password = 'root'; try{ $pdo = new PDO($dsn,$user,$password); }catch(PDOException $e){ echo '出錯了,錯誤信息為',$e->getMessage(); } $sql = "SET NAMES UTF8"; $pdo -> exec($sql); $sql = "SELECT * FROM `users`"; $res = $pdo -> query($sql); $data = $res ->fetchAll(PDO::FETCH_ASSOC); //獲取的所有數據數組
使用foreach遍歷顯示數據
<?php foreach ($data as $key => $value):?> <tr> <td><?php echo $value['id'] ?></td> <td><?php echo $value['name'] ?></td> <td><?php echo $value['age'] ?></td> <td><?php echo $value['sex'] == 1 ? '男' : '女' ?></td> <td><?php echo $value['birth'] ?></td> <td><?php echo $value['phone'] ?></td> <td><?php echo $value['vita'] ?></td> </tr> <?php endforeach ?>
SECOND(添加用戶3-add.php頁面)
先判斷2.php頁面有沒有POST數據過來
if(!empty($_POST)){ $insert_data = $_POST; //獲取2.php傳過來的數據 }
提取$insert_data數組中的字段來填充成sql語言進行操作
$keys = array_keys($insert_data); //獲取數據的key $filed = '(`' .implode('`,`',keys). '`)'; $values = "'".implode("','",$insert_data)."'"; $sql = 'INSERT INTO `users` .$filed.'VALUES('.$values.');'; $affect_row = $pdo -> exec($sql); if($affect_row>0){ echo '<script>alert("添加成功");location="1.php"</script>'; }else{ echo '<script>alert("添加失敗");history.back();</script>'; }
THIRD(刪除操作4-del.php)
刪除操作主要獲取該數據的id,使用$_GET獲取
在1.php頁面設置一個刪除按鈕,並將id設置在href里面、
<a name="detel" href="4-del.php?id=<?php echo $value['id']?">刪除></a>
然后先判斷能不能GET得到id
if(isset($_GET['id'])){ $id = $_GET['id']+0; //為了防止用人直接在地址欄輸入非數字來訪問破壞數據庫,強行轉換為數字 $dsn = 'mysql:dbname=user_messages;host=localhost'; $user = 'root'; $password = 'root'; try{ $pdo = new PDO($dsn,$user,$password); }catch(PDOException $e){ echo "出錯了:". $e->getMessage(); } $sql = "SET NAMES UTF8"; $T = $pdo ->exec($sql); $sql = "DELETE FROM `users` WHERE `id` = $id"; $affect_row = $pdo->exec($sql); if($affect_row>0){ echo '<script>alert("刪除成功");location="1.php"</script>'; }else{ echo '<script>alert("刪除失敗");history.back();</script>'; } }
FOUTH(編輯操作5-edit.php和6-save.php)
在1.php頁面設置一個編輯按鈕,並將id設置在href里面
<a href="5-edit.php?id=<?php echo $value['id'] ?>">編輯</a>
獲取該id所對應的數據,將其預顯示在5-edit.php的表單input里面
if(isset($_GET['id'])){ $id = $_GET['id']+0; $dsn = 'mysql:dbname=user_messages;host=localhost'; $user = 'root'; $password = 'root'; try{ $pdo = new PDO($dsn,$user,$password); }catch(PDOException $e){ echo "出錯了:". $e->getMessage(); } $sql = "SET NAMES UTF8"; $T = $pdo ->exec($sql); $sql = "SELECT `id`,`name`,`age`,`sex`,`phone`,`birth`,`person` FROM `users` WHERE `id` = $id"; $res = $pdo->query($sql); $one_user = $res->fetch(PDO::FETCH_ASSOC); }
6-save.php用於處理5-edit.php POST過來的新數據
if (!empty($_POST)) { $dsn = 'mysql:dbname=user_messages;host=localhost'; $user = 'root'; $password = 'root'; // 連接數據庫 try { $pdo = new PDO($dsn , $user , $password); } catch (PDOException $e) { // print_r($e); echo '出錯啦。錯誤信息是', $e->getMessage() , '<br> 看不懂就聯系網站管理員'; // echo '網站升級中'; } // 設置編碼 $sql = "SET NAMES UTF8"; $pdo -> exec ( $sql ); $where = $_POST['id']; unset($_POST['id']); $save_data = $_POST; $sql = "UPDATE `users` SET"; foreach ($save_data as $key => $value) { $sql.="`".$key."`='".$value."',"; } $sql = rtrim($sql,','); $sql.=" WHERE `id`=$where"; $affect_rows = $pdo ->exec($sql); if ($affect_rows > 0) { echo '<script>alert("修改成功");location="1.php"</script>'; } else { echo '<script>alert("修改失敗");history.back();</script>'; } }
分頁功能
在1-php中設置好參數,並調用一個寫好的函數
// 分頁 $current = isset($_GET['page'])?abs($_GET['page']):1; $current = $current>0?$current:1; $limit = 5; $offect = $limit * ($current-1); $sql = "SELECT COUNT(*) FROM `users`"; $res = $pdo->query($sql); $count = $res->fetch(PDO::FETCH_NUM); $count = $count[0]; $size = 5; $sql = "SELECT * FROM `users` LIMIT $offect,$limit";
//調用函數 <?php page($current,$limit,$count,$size);?>
函數
function page($current,$limit,$count,$size){ $count_page = ceil($count/$limit); if($current>1){ echo '<a href="?page=1">首頁</a>'; echo '<a href="?page='.($current-1).'">上一頁</a>'; }else{ echo'<span>首頁</span>'; echo'<span>上一頁</span>'; } if($current<$size/2+1){ $star = 1; $end = $count_page>=$size?$size:$count_page; }elseif($current>($count_page-($size/2)+1)){ $star =($count_page-$size+1)>=1?($count_page-$size + 1):1; $end = $count_page; }else{ $star = $current - floor($size/2); $end = $current + floor($size/2); } for($i = $star;$i<=$end;$i++){ if ($i == $current) { echo ' <span>'.$i.'</span> '; }else{ echo ' <a href="?page='.$i.'">'.$i.'</a> '; } } if($current<$count_page){ echo '<a href="?page='.($current+1).'">下一頁</a>'; echo '<a href="?page='.$count_page.'">尾頁</a>'; }else{ echo'<span>下一頁</span>'; echo'<span>尾頁</span>'; } }