Предполагая, что в таблице posts имеется столбец id , т. Е. С каждой строкой связано уникальное значение id, создайте блок <form>...</form>
, инкапсулирующий оба Edit и Удалить кнопки, например:
$sql = "SELECT * FROM posts ORDER BY date DESC, time DESC $limit";
$query = mysqli_query($conn, $sql);
<?php
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
?>
<section>
<b>Title: </b>
<p><?php echo $row['name'] ?></p><br />
<b>Content: </b><br>
<p><?php echo $row['content'] ?></p><br />
<form action="YOURPAGE.php?id=<?php echo $row['id']; ?>" method="post">
<input type="submit" name="edit" value="Edit" />
<input type="submit" name="delete" value="Delete" />
</form>
</section>
<?php
}
Таким образом, как только вы нажмете Изменить или Удалить кнопку определенной строки, форма будет отправлена, и вы сможете получить этот конкретный идентификатор строки, используя $_GET['id']
на YOURPAGE.php страница. На основании этого идентификатора строки выполните операцию редактирования или удаления соответствующим образом.
YOURPAGE.php
<?php
/* get row id */
$id = isset($_GET['id']) ? $_GET['id'] : null;
if(isset($id) && isset($_POST['edit'])){
/* Edit button has been clicked */
/* create a prepared statement */
$stmt = mysqli_prepare($conn, "SELECT name, content FROM posts WHERE id = ?")
if($stmt){
/* bind parameters */
mysqli_stmt_bind_param($stmt, "i", $id);
/* execute query */
mysqli_stmt_execute($stmt);
/* bind result variables */
mysqli_stmt_bind_result($stmt, $name, $content);
/* fetch value */
mysqli_stmt_fetch($stmt);
/* close statement */
mysqli_stmt_close($stmt);
?>
<form action="" method="post">
<b>Title: </b><input type="text" name="title" value="<?php echo $name; ?>" /><br />
<b>Content: </b><br />
<textarea name="content" ><?php echo $content; ?></textarea><br />
<input type="submit" name="editrow" value="Edit" />
</form>
<?php
}else{
/* error */
}
}
if(isset($id) && isset($_POST['editrow'])){
$title = $_POST['title'];
$content = $_POST['content'];
/* edit row details based on the row id i.e. $id */
}
if(isset($id) && isset($_POST['delete'])){
/* Delete button has been clicked */
/* Delete row based on the row id i.e. $id */
}
?>