编辑 table 中的特定行(SQL & PHP)
Edit specific row from table (SQL & PHP)
我正在 PHP 做一个项目,但我不知道该怎么做。
我有一个 table 数据库中的数据。
我想要做的是在 table 的每一行上有一个按钮 "edit",它将把我重定向到另一个页面,我可以从那里编辑和更新这些信息。还有一个删除按钮,可以从数据库中删除该数据。
我的 table 是:
Clients(IdClient, Name, Address, Phone)
例如我有:
Name | Address | Phone | - EDIT Button | - DELETE Button
到目前为止,这是我的代码。
<?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
}
我正在 PHP 做一个项目,但我不知道该怎么做。
我有一个 table 数据库中的数据。
我想要做的是在 table 的每一行上有一个按钮 "edit",它将把我重定向到另一个页面,我可以从那里编辑和更新这些信息。还有一个删除按钮,可以从数据库中删除该数据。
我的 table 是:
Clients(IdClient, Name, Address, Phone)
例如我有:
Name | Address | Phone | - EDIT Button | - DELETE Button
到目前为止,这是我的代码。
<?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
}