【发布时间】:2017-04-13 09:12:49
【问题描述】:
没有从数据库中删除数据。我可以添加和查看。
如果我输入print_r($submissions);,我可以看到我的数据。例如。 Array ( [0] => 2 ) $count++; 始终显示 0 ,除非我将计数放在 if 语句之外。 echo "we got an error <br>"; 将显示与要删除的提交一样多的次数。我测试了 SQL 查询,效果很好。不知道现在该去哪里,所以任何帮助表示赞赏。相关代码如下:
型号:
function deleteSubmission($conn,$submission_id)
{
$query = "DELETE FROM submissions WHERE submission_id=:submission_id";
$stmt = $conn->prepare($query);
$stmt->bindValue(':submission_id',$submission_id);
$affected_rows = $stmt->execute();
if($affected_rows==1)
{
//echo $affected_rows;
echo ($affected_rows) ? "true" : "false";
echo " working ";
return true;
}else{
//echo $affected_rows;
echo ($affected_rows) ? "true" : "false";
echo " not working ";
return false;
}
}
控制器:
//they didn't submit the form
if(!isset($_POST["deleteSubmissionsBtn"]))
{
header("Location:all-submissions-delete.php");
exit;
}
$msg;
//validate
if(isset($_POST['submissions']))
{
$submissions=$_POST['submissions'];
$conn=getConn();
$count=0;
foreach ($submissions as $submission_id)
{
if(deleteSubmission($conn,$submission_id))
{
$count++;
}
else{
echo "we got an error <br>";
}
}
print_r($submissions);
//echo $submission_id;
$conn=NULL;
$msg="Successfully deleted $count submissions";
}else{
$msg="You need to select some submissions to delete";
}
include("views/delete-feedback-view.php")
?>
查看:
echo "<form action='delete-submissions.php' method='POST'>";
foreach($allSubmissions as $submission)
{
echo "<div>";
echo "<label>".$submission->title."</label>";
echo "<input type='checkbox' value='".$submission->submission_id."' name='submissions[]'/>";
echo "</div>";
}
echo "<input type='submit' name='deleteSubmissionsBtn' value='delete submissions'>";
echo "</form>";
【问题讨论】:
-
执行查询后,检查执行错误(如果有)。 stackoverflow.com/questions/3999850/pdo-error-message
-
如果有任何可能对您有帮助的错误消息,请检查您的错误日志。
标签: php arrays pdo sql-delete