Ben bir kez daha iç içe bir döngü daha bir hazır deyimi sonuçlarını kullanmak istediğiniz bir durum var. Dış döngü başka bir sorgunun sonuçlarını işler ve iç döngü hazırlanmış deyimi sorgunun sonuçlanır. Yani kod böyle bir şey (kavramını göstermek için sadece "pseudoish") olacaktır:
// not showing the outer query, it is just a basic SELECT, not prepared statement
// we'll call it $outer_query
$obj_array = array(); // going to save objects in this
$ids = array(18,19,20); // just example id numbers
$query = "SELECT field1, field2 FROM table1 WHERE id=?";
$stmt = $db->prepare($query);
foreach ($ids as $id) {
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($var1, $var2);
$stmt->store_result(); // I think I need this for data_seek
while ($q1 = $outer_query->fetch_object()) {
while ($stmt->fetch()) {
if ($q1->field1 == $var1) { // looking for a match
$obj = new stdClass();
$obj->var1 = $var1;
$obj->var2 = $var2;
$obj_array[] = $obj;
$stmt->data_seek(0); // reset for outer loop
break; // found match, so leave inner
}
}
}
}
Ben yaşıyor gibi görünüyor sorun kullandığım ilk kez iç döngü getir sonra beklediğiniz gibi değerleri değişkenlere bağlı almıyor olmasıdır. Bir örnekte ben foreach için 3 kimlikleri ile koştu Özellikle, ilk id doğru işlendiği ikinci (karşılaşmalar onlar var olsa bile, iç döngü içinde bulunmamıştır) yanlış işlendi ve daha sonra üçüncü doğru işlendi.
Ben yukarıda yapıyorum sırayla hazırlanan statment işlev çağrıları ile yanlış bir şey var mı, yoksa bu hazır deyimi sonuçlarını kullanmak için geçersiz bir yoldur?
Teşekkürler.