如何在foreach循环/ if语句中保留变量值?


How can I retain my variable value within this foreach loop / if statement

我试图在里面运行一个IF语句的foreach循环。我想保留$ nextuupdate的值,以便我可以将每个$ex插入到特定的workoutID ($ nextuupdate)中。因为IF语句不会在foreach循环第一次运行之后运行,所以在第一次循环之后我就失去了$ nextuupdate的值。那么我如何在第一次读取$nextupdate时保留它的当前值呢?谢谢!

$check = 0;
$nextupdate = 0;
foreach($exer->results() as $ex){
    //echo $ex->Name."<br/>";
    //$curId = $ex->ExerciseID;
    //$sql2 = "SELECT * FROM exercises WHERE ExerciseID = ".$curId;
    //$details = DB::getInstance()->query($sql2);
    //print_r($details);
    //echo $details->results()[0]->StartReps;
    //$reps = $details->results()[0]->StartReps;
    //echo $details->results()[0]->StartSets;
    //echo $details->results()[0]->StartWeight;
    //echo "<br>";
    if($check = 0){
       $sql = "SELECT * FROM workoutexercises ORDER BY WorkoutID DESC LIMIT 1";
       $recentworkout = DB::getInstance()->query($sql);
       $updateworkout = $recentworkout->results()[0]->WorkoutID;
       $nextupdate = $updateworkout + 1;
       $check = 1;
       echo $nextupdate;
    }
    $sql = "INSERT INTO workoutexercises (ExerciseID, WorkoutID) VALUES (".$curId.",".$nextupdate.")";
    DB::getInstance()->query($sql);
}
?>

将"if"中的检查改为使用双等号,如:

if($check == 0){

$nextupdate的值应该保留。

您使用了单=而不是双==来检查if语句中的条件。如果您将其更改为使用==,那么您的代码应该按您想要的方式工作。

$check = 0;
$nextupdate = 0;
foreach($exer->results() as $ex){        
    if($check == 0){
       $sql = "SELECT * FROM workoutexercises ORDER BY WorkoutID DESC LIMIT 1";
       $recentworkout = DB::getInstance()->query($sql);
       $updateworkout = $recentworkout->results()[0]->WorkoutID;
       $nextupdate = $updateworkout + 1;
       $check = 1;
       echo $nextupdate;
    }
    $sql = "INSERT INTO workoutexercises (ExerciseID, WorkoutID) VALUES (".$curId.",".$nextupdate.")";
    DB::getInstance()->query($sql);
}
?>