簡體   English   中英

編輯表格中的特定行(SQL和PHP)

[英]Edit specific row from table (SQL & PHP)

我正在用PHP開發一個項目,但我不知道該怎么做。

我有一個表,其中包含來自數據庫的數據。

我想做的是在表格的每一行上都有一個“編輯”按鈕,它將把我重定向到另一個頁面,我可以在該頁面上編輯和更新這些信息。 還有一個Delete按鈕,將從數據庫中刪除該數據。

我的桌子是:

客戶(IdClient,姓名,地址,電話)

例如,我有:

姓名| 地址 電話| -編輯按鈕| -刪除按鈕

到目前為止,這是我的代碼。

<?php
    $db_host = 'localhost';
    $db_user = 'root';
    $db_pass = '1234';
    $db_name = "hoteldb";

    $con = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
    if ($con->connect_error)
            die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
    $sql = "SELECT * FROM clients ORDER BY IdClient DESC";
    $result = $con->query($sql);

    ?>
    <table>
        <tr style="font-weight:bold">
        <th>ID</th>
        <th>Name </th>
        <th>Address</th>
        <th>Phone</th>
        </tr>

        <?php
            if ($result->num_rows > 0) {
                 while($row = $result->fetch_assoc()) {
                    echo "<tr>";
                    echo "<td>" . $row["IdClient"] ."</td>";
                    echo "<td>" . $row["Name"]. "</td>";
                    echo "<td>" . $row["Address"] ."</td>";
                    echo "<td>" . $row["Phone"]. "</td>";
                    echo "</tr>";
                 }
            } else {
                 echo "0 results";
            }
            $con->close();
        ?>
    </table>

您能幫我一下,告訴我該怎么做?

您可以添加另一個TD,例如:

<td><a href="edit.php?id=<?php echo urlencode($row['id']); ?>">Name</a></td>

然后創建一個像這樣的函數:

function find_client_by_id($client_id) {
        global $connection;

$safe_client_id = mysqli_real_escape_string($connection, $client_id);

$query = "SELECT * FROM `clients` WHERE id = {$safe_client_id} LIMIT 1";
$client_set = mysqli_query($connection, $query);
if($client = mysqli_fetch_assoc($client_set)) {
    return $client;
} else {
    return null;
   }
}

然后在您的edit.php頁面中調用以下函數:

require_once('functions.php');

並獲得這樣的客戶端ID:

$client = find_client_by_id($_GET['id']);

現在您可以創建表單,只需像示例一樣調用所有信息:

<input type="text" name="name" value="<?php echo htmlentities($client['name'];) ?>"

然后只需更新表單中的所有信息即可,例如:

$id = $client['id'];
$name = mysqli_real_escape_string($_POST['name']);
$address = mysqli_real_escape_string($_POST['address']);

$query  = "UPDATE clients SET name = '{$name}', ";
$query .= "address = '{$address}' WHERE id = {$id} LIMIT 1";
$result = mysqli_query($connection, $query);
if($result) {
   // do something like success
} else {
   // do something else
}

對於刪除,您可以只創建一個delete.php頁面,並像編輯頁面一樣獲取客戶端的ID,例如:

<td><a href="delete.php?id=<?php echo urlencode($clients['id']); ?>" onclick="return confirm('are you sure?');">Delete</a></td>

在這里,您還可以使用一些JavaScript,以確保您不會意外觸摸刪除。

並在delete.php頁面中使用相同的功能

$client = find_client_by_id($_GET['id']);

$id = $client_id['id'];

$query = "DELETE FROM clients WHERE id = {$id} LIMIT 1";
$result = mysqli_query($connection, $query);
if($result && mysqli_affected_rows($connection) == 1) {
    //do something
} else {
    //do something else
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM