各ループにはいくつかありますが、最後に$ sqlの値をエコーアウトしようとしています。私は実際にPDOでそれを使用していますが、エコーは問題を示しています。PDOとFor Each Loop:不正な変数が出力されています
$values = "1,2";
$values = explode(',',$values);
$set1 = "2,4";
$set1 = explode(',',$set1);
$set2 = "3,2";
$set2 = explode(',',$set2);
foreach($set1 as $set1val){
if ($set1val==2) {
$sql = "sql one runs";//should run on 1st iteration since 2 will equal 2
echo 'hi';//should echo on 1st iteration since 2 will equal 2
}
}
foreach($set2 as $set2val){
if ($set2val==2) {
$sql = "sql two runs";//should run on 2nd iteration since 2 will equal 2
echo 'bye';//should echo on 2nd iteration since 2 will equal 2
}
}
foreach($values as $value){
echo $sql;
$stmt = $db->query($sql);
}
//The Result Output
'hi' 'bye' 'sql two runs' 'sql two runs' <-- doesn't echo 'sql one runs'
//The Output Required
'hi' 'bye' 'sql one runs' 'sql two runs' <-- Works great, but not outputting this
どのように出力する必要がありますか?どのようにこれを行うにはどのような考え方は、正しい文がエコー/実行されますか?
ここで何をしようとしていますか?単一の値に対して何かをするためだけに配列をループするのはナンセンスなパターンです。また、どのクエリを動的に実行しようとしていますか?あるいは、このコードは何をすべきか? – deceze
@deceze私は私が持っているよりも何かを複雑にしていたと思う。私は、同じ変数名を使用して実行するクエリを動的に決定しようとしていました。$ SQL変数がアクティブ化された順序を考慮して、その前の実行を上書きして同じクエリを2回実行します。それは意味をなさないでしょうか? – Wonka