Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 使用submit按钮更新mysql中的字段_Php_Mysql - Fatal编程技术网

Php 使用submit按钮更新mysql中的字段

Php 使用submit按钮更新mysql中的字段,php,mysql,Php,Mysql,或者正如标题所说,我可能走错了方向。我在phpmyadmin中的表中创建了一些字段。我有一个“post_id”作为唯一标识符。然后是标题为“名字”、“姓氏首字母”、“电子邮件”、“反馈”和“批准”的字段或(行) 这是一个网站上的推荐页面。我工作正常,然后意识到我需要为网站所有者创建一种在显示评论之前批准评论的方法 我是php和mysql的新手,所以对于这里的很多人来说,这可能非常简单。当我连接到表单上方的推荐页面上的数据库以输入推荐时,我将调用所有值为“1”的行,因为这是“已批准”的注释。默认情

或者正如标题所说,我可能走错了方向。我在phpmyadmin中的表中创建了一些字段。我有一个“post_id”作为唯一标识符。然后是标题为“名字”、“姓氏首字母”、“电子邮件”、“反馈”和“批准”的字段或(行)

这是一个网站上的推荐页面。我工作正常,然后意识到我需要为网站所有者创建一种在显示评论之前批准评论的方法

我是php和mysql的新手,所以对于这里的很多人来说,这可能非常简单。当我连接到表单上方的推荐页面上的数据库以输入推荐时,我将调用所有值为“1”的行,因为这是“已批准”的注释。默认情况下,当有人在表单中输入信息以提交推荐时,该字段的值为“0”。现在在后端,我连接到数据库并在字段中显示所有值为“0”的行

我使用一个html表格来显示字段,表格的最后一列有一个复选框。理想情况下,网站所有者会单击他们想要批准的评论旁边的复选框,然后单击提交按钮,只有复选框才会被批准

我遇到的问题是,当单击submit并连接执行此操作的php代码时,我正在使用UPDATE函数将“approved”字段中的值从0更改为1

我遇到的问题是,它正在批准每个评论,因为我没有用WHERE(函数、语句或任何调用)来限定它。而且,由于这个页面是动态的,将显示不同的评论以供批准,所以我可以说,实际上并没有唯一的标识符

我希望我对这个问题的无知没有让你太困惑,你能帮我解决这个问题

我正在连接这里的数据库

// Check connection
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM feedback WHERE approved = 0");    

echo '<h1>Submitted Comments</h1>';    
echo '<form action="approve_comment.php" method="post">';    
echo '<table>';       
echo '<tr>';
echo '<th>First Name</th>';
echo '<th>Last</th>';
echo '<th>Email</th>';
echo '<th>Comment</th>';
echo '<th>Check</th>';
echo '</tr>';

while($row = mysqli_fetch_array($result))
{    
    echo '<tr style="border:1px solid #000000; padding:10px;">';
    echo '<td style="border:1px solid #000000; padding:10px; width:100px;">' . $row["first_name"].'</td>';
    echo '<td style="border:1px solid #000000; padding:10px; width:50px;">' . $row["last_initial"] . '</td>';
    echo '<td style="width:200px; padding:10px;">' . $row["email"] . '</td>';
    echo '<td style="padding:10px; width:400px;">' . $row["feedback"] . '</td>';
    echo '<td>' . '<input type="hidden" name="check" value="0"/>'.'<input type="checkbox" name="check" value="1"/>' . '</td>';
    echo '</tr>';         
}

echo '</table>';
echo '<input style="float:right;" type="submit" value="Approve Selected" />';
echo '</form>';

mysqli_close($con);
?>    
除了我的WHERE部分,一切都很好。我不知道该在这里放什么,或者我是否正确地调用了数据库中的信息来实现这一点


如果您有任何意见,我们将不胜感激!谢谢

使用数据库记录的ID:

首先以您的形式:

echo "<input type=\"hidden\" name=\"post_id\" value=\"$row[post_id]\"/>";

编辑以添加强制SQL注入保护

请重新格式化您的问题,并将“文本”与实际“代码”分开。哦,没关系。是别人“为你”做的。您可以为此感谢“Fabio”。此方法
其中post\u id=$\u post[post\u id]
为SQL注入留出了空间。然而,你理论上是正确的。感谢快速反应的人!我真的很感激!我会做出改变,并最终完成这件事!:)@实际上,我按照建议实现了miken32,并且它起了作用。但是,在进一步测试后,如果检查了多个注释以供批准,则仅批准检查的最后一个注释。我是新来的,不知道如何在这一部分发布代码。见鬼,总得有人把我上面的帖子修好。但无论如何,它现在是固定的,我打算分享我在这里使用的代码,以帮助其他人与同样的情况。如果有人能告诉我怎么做,我想与大家分享。如果我的答案没有帮助,你可以发布你自己的答案,并将你自己的答案标记为已接受。我没有仔细阅读你的问题,没有注意到你想要一次提交多个项目。编辑:我看到你把我的标记为已接受。您仍然可以发布后续答案,或编辑您的问题。但是,您不能在注释中发布代码块。
echo "<input type=\"hidden\" name=\"post_id\" value=\"$row[post_id]\"/>";
$post_id = mysqli_real_escape_string($con, $_POST["post_id"]);
mysqli_query($con,"UPDATE feedback SET approved=1 WHERE post_id='$post_id'");