抱歉,这是我上一篇文章的更新,我删除了它,因为它没有得到很好的解释。
我正在按用户名和状态显示数据库中的所有行。我想在每一行添加一个按钮,将状态从“打开”更改为“正在运行”。
这是到目前为止我的代码,但它更改了具有特定用户名的所有行,我只需要它只更改用户按下按钮的行:
<?php
if (isset($_POST['running1'])) {
$getid = mysql_query("SELECT `id` FROM `event` WHERE `username` = '". $user_data['username'] ."'");
while($gatherid = mysql_fetch_assoc($getid)) {
$id = $gatherid['id'];
mysql_query("UPDATE `event` SET `status` = 'running' WHERE `id` = '". $id ."'");
}
} else {
mysql_error();
}
$event = mysql_query("SELECT * FROM `event` WHERE `status` = 'open' AND `username` = '". $user_data['username'] ."'");
while($get_event = mysql_fetch_assoc($event)) {
$venue = $get_event['venue'];
$title = $get_event['title'];
$status = $get_event['status'];
$available = $get_event['numbershare'];
$price = $get_event['individual_price'];
$id = $get_event['id'];
echo '
<tbody>
<tr>
<td>' . $venue . '</td>
<td>' . $title . '</td>
<td>' . $available . '</td>
<td>' . $price . '</td>
<td>' . $status . '</td>
<td><button class="btn-u">Link</button></td>
<td><form action="" method="post"><input type="submit" class="btn-u" name="running1"></form></td>
</tr>
</tbody>';
}
?>
最佳答案
1) 在表单中添加隐藏字段来跟踪 ID
<input type="hidden" value="' . $id . "'>
2) 将您的 getid 部分更新为
$id = $_POST['id'];
3) 执行更新
mysql_query("UPDATE `event` SET `status` = 'running' WHERE `id` = '". $id ."'") or throw Exception(mysql_error());
关于php - 更新数据库中的记录,需要时更改所有记录,仅更改 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24175568/