单击特定按钮时更新数据库中的特定行。 PHP

时间:2012-06-25 22:00:01

标签: php mysql html forms

好的,比如说我有一个用户可以投票的网站。

让我们说每个民意调查都在数据库中,每个民意调查都有一个唯一的ID列,以及一个存储问题的列,一个列是多少票的列,一列是多少票。

让我说我有一个用户可以去查看民意调查的页面。因此,我查询数据库中的所有民意调查,然后将它们全部循环,将它们打印到屏幕上,并在每个旁边放置一个单选按钮,您可以在该问题上对是/否进行投票然后提交。

这是我需要帮助的地方。如果我在屏幕上有数百个这样的民意调查,并且用户只点击一个旁边的提交按钮并投票,我如何识别我需要更新记录的唯一民意调查?

所以我想我所说的是,如何将每个民意调查的ID与其自己的提交按钮相关联,这样当用户点击该特定提交按钮时,我知道哪个民意调查更新了记录?

Database: A_Database

Table: Polls
ID        Question           Yes    No
1       "Is the sky blue?"    0     0
2       "Is water wet?"       0     0

这是数据库的结构。所以现在我将查询所有问题,并将它们打印到屏幕上以及提交表决的表格。

$query = SELECT * FROM `Polls`;
   if ($query_run = mysql_query($query)) {
        $count = 0;
        $array = mysql_fetch_assoc($query_run);
        while ($count < mysql_num_rows($query_run)) {
            echo '<strong>Poll: Yes/No:</strong>'.'<br>';
            echo mysql_result($query_run, $count, 'Question').' ';
            echo mysql_result($query_run, $count, 'yes').'/';
            echo mysql_result($query_run, $count, 'no').' ';
                            echo '<form><input type="radio" name="vote"> yes
                                        <input type="radio" name="vote"> no 
                                        <input type="submit" name="submit" value="vote">
                                  </form>';
            $count = $count + 1;
        }
    } else {
        echo mysql_error();
    }

好的,现在所有的民意调查都会输出到屏幕上,每个民意调查都有一个提交按钮。我的问题是我如何将每个提交按钮与自己的民意调查相关联,这样当用户投票并点击特定的提交按钮时,我知道要更新记录的民意调查。

2 个答案:

答案 0 :(得分:0)

听起来像foreach民意调查,使用唯一身份证。使用jQuery,当单击uniqueID提交按钮时,发送ajax POST请求以更新数据库,然后在成功时更新屏幕上的轮询数据。

除非你展示你的作品,否则我不能给你任何具体的信息,除非你的描述听起来如此。

答案 1 :(得分:0)

更新数据库中的行不可能与php相关。你必须使用Javascript。

PHP是服务器端语言,Javascript是客户端语言。

这意味着在您的Web浏览器有机会看到它之前,服务器会使用PHP呈现浏览器的html页面。除非服务器再次加载整个页面,否则无法使用PHP修改数据库,因为服务器端语言首先运行。

这就是你必须使用Javascript的原因。由于Javascript是客户端语言,因此它在Web浏览器的范围内运行。因此,如果您使用Javascript,则可以更新数据库。

这种在页面上发布和更新元素而不再加载整个网页的Javascript方法称为AJAX。

如果您非常热衷于不学习Javascript,可以使用PHPLiveX库在PHP中使用AJAX。它很好但是一旦你使用它,你可能会意识到为什么使用Javascript更实用。我会使用JQuery,但这是用Javascript编写的。