【问题标题】:Update a particular row in a database when a particular button is clicked. php单击特定按钮时更新数据库中的特定行。 php
【发布时间】:2012-06-25 22:00:00
【问题描述】:

好吧,比如说我有一个网站,用户可以在该网站上投票。

假设每个投票都在数据库中,并且每个投票都有一个唯一的 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();
    }

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

【问题讨论】:

  • 如果有人能够帮助您,您需要提供更多详细信息。数据库的结构是什么?等等……
  • 好吧,我添加了一些代码。我希望这会有所帮助

标签: php mysql html forms


【解决方案1】:

听起来像 foreach 民意调查,使用唯一 ID。使用jQuery,当点击uniqueID提交按钮时,发送ajax POST请求更新数据库,成功后更新屏幕上的投票数据。

除非你展示你的作品,否则我无法向你提供任何具体信息,除了听上去你的描述我会怎么做。

【讨论】:

  • 感谢您的回复,有什么方法可以仅使用 PHP 来完成?恐怕我不熟悉 JQuery。我添加了更多信息,希望对您有所帮助
【解决方案2】:

更新数据库中的一行不可能只用 php。您必须使用 Javascript。

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

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

这就是您必须为此使用 Javascript 的原因。由于 Javascript 是一种客户端语言,它在网络浏览器的范围内运行。因此,如果您使用 Javascript,您将能够更新数据库。

这种无需重新加载整个网页即可在页面上发布和更新元素的 Javascript 方法称为 AJAX。

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

【讨论】:

  • 好吧,看来我正在学习jquery!感谢您的回复,我知道 php 只是服务器端,但我想我没有想到这会使这成为不可能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多