您好我试图阻止while循环的一部分仅运行ONCE。
我已经搜索过,并且IF语句似乎是唯一的方法
唯一的一点是,当我把IF语句放入时 - 它似乎根本不是INSERT语句,因此没有插入任何内容,就像它在insert语句之前停止一样。正如你所看到的,$ inserted在循环之外声明,然后在内部更改为true,因此它会停止,但它似乎没有这样做。
没有它,它将在每次刷新页面时循环,并在每次刷新页面时插入数据库,尽管我只需要INSERT语句运行一次。我需要它在循环中,因为插入的信息是。
有人可以帮忙吗?
答案 0 :(得分:0)
试试这个,然后告诉我们错误是什么。如果它没有插入,则可能是您需要知道的PDO内的错误。
if (!$inserted) {
$inserted = true;
try {
$stmt = $conn->prepare("INSERT into UserRecipes (UserID, RecipeID, Displayed) VALUES (:UserID, :RecipeID, :Displayed) ");
$stmt->execute(array(
':UserID' => $UserID,
':MealID' => $MealID,
':Displayed' => $Displayed
));
} catch (PDOException $p) {
print $p;
exit;
}
}
答案 1 :(得分:0)
我试图修复你的报价太糟糕了
<?php
$inserted=false;
while($dbRow=$dbQuery->fetch(PDO::FETCH_ASSOC) and ($cnt < $max))
{
echo ''.$dbRow["Name"].'<br><img src="\"'.$dbRow["Picture"].' width="150" height="150" /><br><br>'.$dbRow["Instructions"].'
<form method="POST"><input type="hidden" name="MealID" value= "'.$dbRow['MealID'].'">
<input type="submit" name="submit" value="Complete" ></form>';
$cnt++;
$MealID=$dbRow["MealID"];
$Displayed = false;
if (!$inserted) {
$inserted=true;
$stmt=$conn->prepare("INSERT into UserRecipes (UserID, RecipeID, Displayed) VALUES (:UserID, :RecipeID, :Displayed) ");
$stmt->execute(array(
':UserID' => $UserID,
':MealID' => $MealID,
':Displayed' => $Displayed
));
}
}
?>
让我希望我没有错过任何事情