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

时间:2014-06-12 02:27:40

标签: 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>';
        }

&GT;

1 个答案:

答案 0 :(得分:1)

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());