はい、selectステートメントの上に削除ロジックを含めるだけです。
<?php
// Connect to server and select database.
$link = mysqli_connect("localhost", "root", "password", "testdelete"); //for local machine testing
// Check connection
if ($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Handle delete
if (isset($_GET['delete_id'])) {
// get value of id that sent from address bar
$delete_id = (int) $_GET['delete_id'];
// Delete data in mysql from row that has this id
$sql="DELETE FROM testdelete.test_mysql WHERE id='$delete_id'";
$result=$link->query($sql);
// if successfully deleted
if ($result){
echo "Deleted Successfully";
echo "<BR>";
} else {
echo "Delete ERROR";
}
}
// select record from mysql
$sql = "SELECT id, name, lastname, email FROM testdelete.test_mysql";
$result = $link->query($sql);
if ($result->num_rows > 0) {
include 'table_header.html';
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td bgcolor=\"#FFFFFF\">".$row["id"]."</td>";
echo "<td bgcolor=\"#FFFFFF\">". $row["name"]."</td>";
echo "<td bgcolor=\"#FFFFFF\">" . $row["lastname"]."</td>";
echo "<td bgcolor=\"#FFFFFF\">". $row["email"] . "</td>";
echo "<td bgcolor=\"#FFFFFF\"><a href=\"?delete_id={$row['id']}\">Delete row</a></td>";
echo "</tr>";
}
include 'table_footer.html';
} else {
echo "0 results";
}
// close connection
mysqli_close($link);
?>
ただし、このアプローチには注意してください。これは単なるリンクであり、公開されている場合、ボットはすべてをクロールして削除できます。
また、他にもいくつかの変更があることに注意してください。パラメータをid
から変更しました delete_id
へ 、あいまいさを避けるためだけに。削除リンクを更新しました。 $_GET['delete_id']
を確認しています 削除クエリを実行する前に設定されます。そして、私は$_GET['delete_id']
に(int)をキャストしています 実際に整数であることを確認します。