[英]IF Statement not working in while loop PHP?
嗨,我试图阻止while循环的一部分仅运行一次。
我已经搜索过,IF语句似乎是唯一的方法
唯一的是,当我放入IF语句时-似乎根本不执行INSERT语句,因此没有插入任何内容,就好像它在插入语句之前停止了一样。 如您所见,$ inserted在循环外部声明,然后在内部更改为true,因此它停止了,但是似乎没有这样做。
没有它,它将在每次刷新页面时循环并在每次刷新页面时将其插入数据库中,尽管我只需要INSERT语句即可运行一次。 我在循环中需要它,因为这是插入信息所在的位置。
有人可以帮忙吗?
试试这个,然后让我们知道错误是什么。 如果未插入,则可能是您需要知道的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;
}
}
我试图解决您的报价太糟糕了
<?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
));
}
}
?>
我希望我没有错过任何事情
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.