【发布时间】:2014-02-18 21:04:19
【问题描述】:
或者正如标题所述,我可能走错了路。我在 phpmyadmin 的表中创建了一些字段。我有一个“post_id”作为唯一标识符。然后是标题为“first_name”、“last_initial”、“email”、“feedback”和“approved”的字段或(行)。
用于网站上的推荐页面。我已经让一切正常工作,然后意识到我需要为网站所有者创建一种在显示 cmets 之前批准它们的方法。
我是 php 和 mysql 的新手,所以对于这里的很多人来说这可能非常简单。当我在表单上方的推荐页面上连接到数据库以输入推荐时,我正在调用所有值为“1”的行,因为这是“已批准”的 cmets。默认情况下,当有人在表单中输入信息以提交推荐时,该字段的值为“0”。现在在后端,我连接到数据库并在字段中显示所有值为“0”的行。
我使用 html 表格来显示字段,表格的最后一列有一个复选框。理想情况下,网站所有者会单击他们想要批准的 cmets 旁边的复选框,然后单击提交按钮,只有选中的复选框才会被批准。
我遇到的问题是,当单击提交并连接执行此操作的 php 代码时,我使用 UPDATE 函数将“已批准”字段中的值从 0 更改为 1。
我遇到的问题是它正在批准每条评论,因为我没有以某种方式使用 WHERE(函数、语句或任何它被调用的东西)来限定它。而且由于此页面是动态的,并且将显示不同的 cmets为了获得批准,据我所知,确实没有唯一标识符。
我希望我对这个主题的无知没有让您感到非常困惑,您将能够帮助我。
我这里正在连接数据库......
// 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);
?>
该代码显示他们将批准 cmets 的后端元素。动作如下: 正在这里连接数据库...
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"UPDATE feedback SET approved=1 WHERE approved='0'");
mysqli_close($con);
header("Location: http://redirecting to the back end page here");
?>
除了我的 WHERE 部分外,一切正常。我不知道该放什么,或者我是否正确地从数据库中调用信息来完成这项工作。
您的任何意见将不胜感激!谢谢!
【问题讨论】:
-
请重新格式化您的问题并将“文本”与实际“代码”分开。哦,没关系。别人“为你”做的。你可以感谢“法比奥”。