繁体   English   中英

IF语句不能在while循环PHP中工作?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM