2016-04-22 60 views
0

好的,问题是我无法让我的数据库在投票页面或我的数据库上添加投票后,个人在上一页单击提交投票问题。我在我的PHP代码中尝试了$vote = $vote + 1之类的东西,然后通过$command用SQL显示它,但那不起作用,而且我尝试过很多其他的事情,比如做一个变量= 1($ avote = 1),所以我有点儿卡住了,有人告诉我,我可以只加1做这个 - $votes = $row['Votes' . $i] + 1;然后我不得不以某种方式显示它,但我无法弄清楚,这是我的代码在我的页面中检索信息并添加它到我的数据库和网页(我取出unneccesary 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

你能花时间清理你的文章吗?此外,只包含相关的代码行,并且要明确你所困扰的内容。这一切都有点混乱。 – Daniel

+0

好的,我现在编辑它 – NarinderRSharma

+0

您已经标记了两个不同的数据库平台;微软的SQL Server和MySQL。你在用哪个? –

回答

0

你会收到错误信息吗?

这听起来像你试图显示投票结果(在用户提交自己的投票后),但你无法检索投票结果。由于投票结果需要在用户和会话中持续存在,因此您必须将其存储在某个地方。我想这就是你的数据库中的$answer?您的UPDATE查询有点不对劲。首先,你应该确保它在没有变量的情况下正常工作,我喜欢去命令行客户端或像phpMyAdmin这样的图形工具。它看起来更像是:

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

哪里poll是你的桌子和resultpoll_id在你的表列。

看起来好像您试图询问用户多个问题,因此您将为每个问题提供不同的poll_id,并使用隐藏表单字段获取poll_id的值。您现在似乎正在使用$row阵列,但它看起来很脆弱,并且在您构建更多轮询选项时不会扩展(从技术上讲,它可以扩展,但您永远无法删除问题或摆脱旧的民意调查

你似乎在使用PDO(因为“面向对象的风格”mysqli execute接受一个void参数,并且没有任何与SQL Server对话的PHP库似乎都有这种精确的语法),但那么我希望你的prepare声明对变量有问号,而不是直接替换。如果你对于正确的语法不清楚,请参阅PHP manual,但希望你在来这里之前已经过了这些。

一旦你清理了这些问题,如果你还有其他问题,应该更容易追踪到发生的事情。

相关问题