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

时间:2018-04-04 14:54:52

标签: php mysql

您好我试图阻止while循环的一部分仅运行ONCE。

我已经搜索过,并且IF语句似乎是唯一的方法

唯一的一点是,当我把IF语句放入时 - 它似乎根本不是INSERT语句,因此没有插入任何内容,就像它在insert语句之前停止一样。正如你所看到的,$ inserted在循环之外声明,然后在内部更改为true,因此它会停止,但它似乎没有这样做。

没有它,它将在每次刷新页面时循环,并在每次刷新页面时插入数据库,尽管我只需要INSERT语句运行一次。我需要它在循环中,因为插入的信息是。

有人可以帮忙吗?

2 个答案:

答案 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
        )); 
   }
    }


?>

让我希望我没有错过任何事情