Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何添加投票以更新我的数据库_Php_Mysql_Database - Fatal编程技术网

Php 如何添加投票以更新我的数据库

Php 如何添加投票以更新我的数据库,php,mysql,database,Php,Mysql,Database,好吧,问题是我无法让我的数据库在投票页面或我的数据库中添加投票,因为在上一页面上的个人单击提交对问题进行投票。以下是我在页面中检索信息并将其添加到数据库和页面的代码: if ($row) { // display the poll echo '<h1>' . $row['Title'] . '</h1>'; echo '<p><b>' . $row['Questio

好吧,问题是我无法让我的数据库在投票页面或我的数据库中添加投票,因为在上一页面上的个人单击提交对问题进行投票。以下是我在页面中检索信息并将其添加到数据库和页面的代码:

      if ($row) {
            // display the poll
            echo '<h1>' . $row['Title'] . '</h1>';
            echo '<p><b>' . $row['Question'] . '</b></p>';
            echo '<table><tr><th style="text-align:left">Answer</th><th>Votes</th></tr>';
            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']));
if($row){
//显示投票
回显“.$row['Title']”;
回显“”.$row['Question']。

”; 回应“回答投票”; 对于($i=1;$i准备($command); $stmt->execute(数组($_会话['vowers']);
您的SQL查询格式不正确

以下是SQL更新语法:

更新表\u名称
设置column1=value1,column2=value2,…
其中,某个_列=某个_值


我无法从您的代码中真正判断$answer应该是什么,您也没有提供数据库结构。不过,首先您应该修复SQL语句。

您的查询应该是这样的

$command = "UPDATE FROM polls SET column_name = column_name + 1 WHERE column_name = value";

where子句后面的参数将是问题的标识符,即主键或与其值相等的唯一键。

更新轮询
而不是
更新自
。此外,您没有设置$answer。如果您使用的是
PDO
(我想您不确定),如果要将数组传递到execute.Btw,
SQL!=MySQL
(关于:您的标记),您希望使用
而不是
$…
。对于调试,我建议您回显或打印包含生成的SQL文本的变量。将SQL带到其他客户端并进行测试。将您的SQL与MySQL参考手册中的语法示例进行比较。我们无法确定$answer包含的内容或支持包含的内容。我们可以确定语法的一些问题。删除FROM关键字(除非这是您正在更新的表的名称,然后需要将其包含在反勾中),否则SET子句的形式应为
SET col=expr
(可能$answer包含该名称。但是我们怎么知道呢?)。Mysql和ms sql server是两种不同的产品。请删除不必要的产品标签!这样做:$command=“从轮询集更新$ANSWERS=$VOOTES+$avote其中$ANSWERS=$VOOTES”这将导致语法错误。更新轮询,其中$DASWERS=$VOOTES+1其中$row['QUOTES']={$\u GET['QUOTES']};这会告诉我他们选择了哪个问题并更新了投票结果吗?请注意,
value1
可能是一个表达式,例如
SET column1=column1+1
,或者任何其他返回标量的表达式。+10。我想知道mysql和php在这种情况下,括号中的mysql部分是否可以访问++修饰符?那么我可以使用UPDATE polls SET$answer=$votes++;。另一件事是我不知道如何处理我的where,我意识到我的问题是什么,为什么我的数据库没有更改where语句,我必须设置我选择的问题。所以我必须访问我的问题我有哪些?在这里,我将尝试制作一个快速表格并上传因为我不知道如何以任何其他方式显示我的表,除非它有一个附件链接。这个问题虽然是随机的,但取决于用户选择什么,所以我用我的列问题做另一个for-loop语句,并说执行以下操作:$question=$row['question'.$i];然后在哪里{$row['question]}=$question;哦,等等,这不管用有4个不同的答案栏和4个不同的投票栏,但只有一个问题栏。上帝啊,我希望我的导师不在约旦。3天后我就要考试了。这是我唯一不懂怎么做的事,通过课程更新。我明白你们的意思,但在哪里陈述的一部分问题是随机的,就像用户选择它不是你的选择是用户的选择,你如何做到这一点,不知道我需要某种类型的扫描变量,就像他们在java中所做的一样。好吧。让我们把这一点弄清楚,并找到一个解决方案,在你的代码提取中,它看起来像是从数据库中提取了一行(这是一个民意测验)其中包含Answer1、Answer2、Answer3和Answer4,以及Votes1-4,所有这些都包含在
$row
中,然后输出表的一部分…然后开始更新数据库?为什么?