學習筆記-----php搭建用戶管理系統


后台: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>';
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM