如何在表单中向我的数据库添加投票?

时间:2016-04-22 21:41:36

标签: php mysql sql-server database

好吧,问题是我无法让我的数据库在投票页面或我的数据库上添加投票给上一页上的个人点击提交后投票给一个问题。我已经在我的PHP代码中尝试了$vote = $vote + 1之类的内容,然后通过$command使用SQL显示它,但这并不起作用以及我尝试过的许多其他事情变量= 1($ avote = 1)所以我有点卡住,有人告诉我,我可以通过这样做添加1 - $votes = $row['Votes' . $i] + 1;然后我必须以某种方式显示它,但我无法弄明白,这里是我的页面中的代码,用于检索信息并将其添加到我的数据库中页面(我已经取出了不必要的HTML表格标签以获得更清晰的视图):

        // if $row is false, then the pollid must have been wrong
        if ($row) {
            // display the poll
            echo '<h1>' . $row['Title'] . '</h1>';
            echo '<p><b>' . $row['Question'] . '</b></p>';

            for ($i = 1; $i <= 4; $i++) {
                $answer = $row['Answer' . $i];
                $votes = $row['Votes' . $i];
                $avote = 1;
                $command = "UPDATE FROM polls SET $answer WHERE $answer='$answer+$avote'";

                $stmt = $dbh->prepare($command);
                $stmt->execute(array($_SESSION['Votes']));

如果我的朋友对$votes = $row['Votes' . $i] + 1;有人可以让我知道我如何在我的$command SQL代码中显示它: $command = "UPDATE FROM polls SET $answer WHERE $answer='$answer+$avote'";

请感谢您的任何见解。

1 个答案:

答案 0 :(得分:0)

您收到错误消息吗?

听起来您正试图显示投票结果(在用户提交自己的投票后),但您无法检索投票结果。由于调查结果需要在用户和会话中持续存在,因此您必须将其存储在某个位置。我想那是$answer在您的数据库中的含义?

您的UPDATE查询有点不合适。首先,你应该确保它在没有变量的情况下正常工作,我喜欢使用命令行客户端或像phpMyAdmin这样的图形工具。它可能看起来更像:

UPDATE polls SET result = result + 1 WHERE poll_id = 1;

您的表格中poll,而resultpoll_id是表格中的列。

好像您试图向用户询问多个问题,因此每个问题都会有不同的poll_id,并使用隐藏的表单字段来获取{{1}的值}}。您现在似乎正在使用poll_id数组,但它似乎很脆弱,并且在您构建更多投票选项时不会扩展(嗯,从技术上讲,它会扩大规模,但是您赢得了#t; t能够删除一个问题或摆脱旧的民意调查。

您似乎正在使用PDO(因为&#34;面向对象的样式&#34; mysqli $row采用void参数,并且没有与SQL Server对话的PHP库似乎具有这种确切的语法) ,但是我希望你的execute语句对变量有问号而不是直接替换。有关详细信息,请参阅PHP manual,如果您不清楚正确的语法,但希望您在来这里之前已经完成了这些。

一旦你清理了这些问题,如果你有其他问题,那么追踪一些事情会更容易。