我试图在里面运行一个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);
}
?>