php - 更新数据库中的记录,需要时更改所有记录,仅更改 1 行

标签 php mysql sql forms

抱歉,这是我上一篇文章的更新,我删除了它,因为它没有得到很好的解释。

我正在按用户名和状态显示数据库中的所有行。我想在每一行添加一个按钮,将状态从“打开”更改为“正在运行”。

这是到目前为止我的代码,但它更改了具有特定用户名的所有行,我只需要它只更改用户按下按钮的行:

 <?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/

相关文章:

php - 组织 Div 的 css 框模型

php - 我可以在数据库查询中使用异常吗?

PHP:如何在类中创建动态变量

c# - C#中使用SSH.net从远程文件获取文件内容

sql - 如何在 pl/sql block 中给出本地文件系统的相对路径

php - 即使在 PHP 中多次尝试后,MySQL 连接仍无法正常工作

mysql - 无法使用 "lower_case_table_names=1"创建新的 RDS MySQL 数据库实例

MySQL:使用行子集来检查 where 子句

mysql - SQL连接三张表

sql - SQL 中的 Order by 子句执行