[PHP&MYSQL]5.修改清單中該筆資料

  • 478
  • 0
  • php
  • 2023-02-11

文、意如

修改清單中該筆資料

list.php

<?php
include 'header.php'; //引入表頭
?>
<html>

<head>
    <title>最新消息</title>
</head>
<?php
$servername = "localhost"; //伺服器ip或本地端localhost
$username = "root"; //登入帳號
$password = ""; //密碼
$dbname = "mydb"; //資料表名稱

//建立連線
$conn = new mysqli($servername, $username, $password, $dbname);

//確認連線成功或失敗
if ($conn->connect_error) {
    die("連線失敗" . $conn->connect_error);
}
//echo "連線成功";

// 設置一個空陣列來放資料
$datas = array();

$sql = "SELECT * FROM admin_manager"; // sql語法存在變數中

$result = mysqli_query($conn, $sql); // 用mysqli_query方法執行(sql語法)將結果存在變數中

// 如果有資料
if ($result) {
    // mysqli_num_rows方法可以回傳我們結果總共有幾筆資料
    if (mysqli_num_rows($result) > 0) {
        // 取得大於0代表有資料
        // while迴圈會根據資料數量,決定跑的次數
        // mysqli_fetch_assoc方法可取得一筆值
        while ($row = mysqli_fetch_assoc($result)) {
            // 每跑一次迴圈就抓一筆值,最後放進data陣列中
            $datas[] = $row;
        }
    }
    // 釋放資料庫查到的記憶體
    mysqli_free_result($result);
} else {
    echo "{$sql} 語法執行失敗,錯誤訊息: " . mysqli_error($link);
}
// 處理完後印出資料
if (!empty($result)) {
    // 如果結果不為空,就利用print_r方法印出資料
    //print_r($datas);
} else {
    // 為空表示沒資料
    echo "查無資料";
}
echo "<br><br>";
//echo $datas[0]['sf_name']; // 印出第0筆資料中的sf_name欄位值

//使用表格排版用while印出
$datas_len = count($datas); //目前資料筆數

?>
<body>
    <div style="text-align:center;width:100%;height:50px;">
         <div style="width:70%;height:20px;margin:0 auto;">
        <h1 class="margin_top50">清單</h1>
        <div class="text-left">
            <button class='btn btn-info btn'><a href="insertlist.php" style="color:white">新增</a>
        </div>
            <table class="table table-hover margin_top50" id="list_table">
                <thead>
                    <tr>
                        <th>序號</th>
                        <th>姓名</th>
                        <th>帳號</th>
                        <th>建立時間</th>
                        <th>建立者</th>
                        <th>更新時間</th>
                        <th>更新者</th>
                        <th>功能</th>
                    </tr>

                </thead>
                <tbody>
                    <tr class="table-danger">
                        <?php
                        for ($i = 0; $i < $datas_len; $i++) {
                            echo "<tr>";
                            echo "<td>" . ($i + 1) . "</td>";
                            echo "<td>" . $datas[$i]['adm_name'] . "</td>";
                            echo "<td>" . $datas[$i]['adm_account'] . "</td>";
                            echo "<td>" . $datas[$i]['create_time'] . "</td>";
                            echo "<td>" . $datas[$i]['create_user'] . "</td>";
                            echo "<td>" . $datas[$i]['update_time'] . "</td>";
                            echo "<td>" . $datas[$i]['update_user'] . "</td>";
                            echo "<td>
                            <a href='listdetail.php?pk=".$datas[$i]['adm_pk']."'><button class='btn btn-success'>詳細</button></a>
                            <a href='listedit.php?pk=".$datas[$i]['adm_pk']."'><button class='btn btn-success'>修改</button></a>
                            <a href='dbdeletelist.php?pk=".$datas[$i]['adm_pk']."'><button class='btn btn-success'>刪除</button></a>
                            </td>";
                        }
                        ?>
                    </tr>
                </tbody>
            </table>

            <div class="row">
                <div class="mx-auto">
                    <div class="text-center">
                        <ul class="pagination" id="pagination"></ul>
                        共<span id="total_count"><?php echo $datas_len; ?></span>筆<br>

                    </div>
                </div>
            </div>
        </div>
    </div>
    </div>
    </div>


</body>

</html>

點擊修改帶該筆資料的編號到listedit.php?pk=該筆編號

 <a href='listedit.php?pk=".$datas[$i]['adm_pk']."'><button class='btn btn-success'>修改</button></a>

 

修改頁listedit.php

listedit.php

<?php
include 'header.php'; //引入表頭
?>
<html>

<head>
    <title>最新消息</title>
</head>
<?php
$servername = "localhost"; //伺服器ip或本地端localhost
$username = "root"; //登入帳號
$password = ""; //密碼
$dbname = "mydb"; //資料表名稱

//建立連線
$conn = new mysqli($servername, $username, $password, $dbname);

//確認連線成功或失敗
if ($conn->connect_error) {
    die("連線失敗" . $conn->connect_error);
}
//echo "連線成功";

$adm_pk=$_GET['pk'];
echo $adm_pk;
// 設置一個空陣列來放資料
$datas = array();

$sql = "SELECT * FROM admin_manager WHERE adm_pk='".$adm_pk."'"; // sql語法存在變數中

$result = mysqli_query($conn, $sql); // 用mysqli_query方法執行(sql語法)將結果存在變數中

// 如果有資料
if ($result) {
    // mysqli_num_rows方法可以回傳我們結果總共有幾筆資料
    if (mysqli_num_rows($result) > 0) {
        // 取得大於0代表有資料
        // while迴圈會根據資料數量,決定跑的次數
        // mysqli_fetch_assoc方法可取得一筆值
        while ($row = mysqli_fetch_assoc($result)) {
            // 每跑一次迴圈就抓一筆值,最後放進data陣列中
            $datas[] = $row;
        }
    }
    // 釋放資料庫查到的記憶體
    mysqli_free_result($result);
} else {
    echo "{$sql} 語法執行失敗,錯誤訊息: " . mysqli_error($link);
}
// 處理完後印出資料
if (!empty($result)) {
    // 如果結果不為空,就利用print_r方法印出資料
    // print_r($datas);
    //echo($datas[0]['adm_name']);
} else {
    // 為空表示沒資料
    echo "查無資料";
}
echo "<br><br>";
//echo $datas[0]['sf_name']; // 印出第0筆資料中的sf_name欄位值

//使用表格排版用while印出
$datas_len = count($datas); //目前資料筆數

?>
<body>
    <div style="text-align:center;width:100%;height:50px;">
         <div style="width:30%;height:20px;margin:0 auto;">
        <h1 class="margin_top50">清單</h1>
        <div class="text-left">
            <button class='btn btn-info btn'><a href="insertlist.php" style="color:white">新增</a>
        </div>
            <form method="post" action="dbeditlist.php?pk=<?php echo $datas[0]['adm_pk']?>">
                姓名:<input type="text" class="form-control" value="<?php echo $datas[0]['adm_name'] ?>" name="adm_name"><br>
                帳號:<input type="text" class="form-control" value="<?php echo $datas[0]['adm_account'] ?>" name="adm_account"><br>
                建立者:<input type="text" class="form-control" value="<?php echo $datas[0]['create_user'] ?>" name="create_user" disabled><br>
                建立時間:<input type="text" class="form-control" value="<?php echo $datas[0]['create_time'] ?>" name="create_time" disabled><br>
                更新者:<input type="text" class="form-control" value="<?php echo $datas[0]['update_user'] ?>" name="update_user" disabled><br>
                更新時間:<input type="text" class="form-control" value="<?php echo $datas[0]['update_time'] ?>" name="update_time" disabled><br>
                <input type="submit" class="form-control btn btn-primary" value="修改">
            </form>
        </div>
    </div>
    </div>
    </div>


</body>

</html>

 

輸入完要修改資料後點擊修改到dbeditlist.php

<form method="post" action="dbeditlist.php?pk=<?php echo $datas[0]['adm_pk']?>">

<input type="submit" class="form-control btn btn-primary" value="修改">

 

dbeditlist.php修改成功後再導回原頁listedit.php

<?php
include 'header.php'; //引入表頭

$servername = "localhost"; //伺服器ip或本地端localhost
$username = "root"; //登入帳號
$password = ""; //密碼
$dbname = "mydb"; //資料表名稱

//建立連線
$conn = new mysqli($servername, $username, $password, $dbname);

//確認連線成功或失敗
if ($conn->connect_error) {
    die("連線失敗" . $conn->connect_error);
}
//echo "連線成功";
$adm_pk=$_GET['pk'];
$adm_name=$_POST["adm_name"];
$adm_account=$_POST["adm_account"];
$sql = "UPDATE admin_manager SET adm_name = '".$adm_name."', adm_account = '".$adm_account."',update_user = '".$_COOKIE['name']."' WHERE adm_pk = '".$adm_pk."'";


if ($conn->query($sql) === TRUE) {
    echo "更新成功";
    header("location:listdetail.php?pk=".$adm_pk);
  } else {
    echo "Error: " . $sql . "<br>" . $conn->error;
  }


  //關閉資料庫
  $conn->close();


?>

 

Yiru@Studio - 關於我 - 意如