2016-04-10 20 views
0

Veritabanımda iki tablo var; Kullanıcılar & arkadaşlar. Sorguyu yapan kullanıcıyla arkadaş olan tüm kullanıcıların bilgilerini almaya çalışıyorum. Sorun, php kodumun "sync error" komutları atmasıdır. Ayrıca, kullandığım kod biraz "hacky" gibi görünüyor, lütfen varsa, başka bir alternatif öner.PHP; Senkronizasyon hatasından çıkış komutları

Hata, foreach döngüsünden sonra ikinci satırda atılır.

MY KODU: ne denedim

$friends = []; 
$query = "SELECT friend FROM friends WHERE register_id=? AND status=1"; 
$stmt = $con->prepare($query); 
$stmt->bind_param("i",$register_id); 
$stmt->execute(); 
$stmt->bind_result($_friend); 
while($stmt->fetch()) 
    array_push($friends,$_friend); 
$stmt->close(); 
$query = "SELECT register_id FROM friends WHERE friend=? AND status=1"; 
$stmt = $con->prepare($query); 
$stmt->bind_param("i",$register_id); 
$stmt->execute(); 
$stmt->bind_result($_fri); 
while($stmt->fetch()) 
    array_push($friends,$_fri); 
$stmt->close(); 
$con->next_result(); 
foreach($friends as $id){ 
    $query="SELECT username,image,location FROM users WHERE register_id=?"; 
    $stmt = $con->prepare($query);<----- Error thrown here 
    $stmt->bind_param("i",$id); 
    $stmt->execute(); 
    $stmt->bind_result($_username,$_image,$_location); 
    $stmt->fetch(); 
    $arr = [ 
     'name'=>$_username, 
     'image'=>$_image, 
     'location'=>$_location, 
    ]; 
    $contacts[] = $arr; 
} 
sendJson(true,"Friends fetched successfully",$contacts); 

:

Sorun foreach döngü içinde oldu

$stmt->store_result(); 
$stmt->close(); 
$con->next_result(); 
+0

Olası çoğaltılacak [Komutların senkronizasyon dışı; şimdi bu komutu çalıştıramazsınız] (http://stackoverflow.com/questions/614671/commands-out-of-sync-you-cant-run-this-command-now) – Chris

+0

Bunu denedim. Nafile. Aynı hata. –

+0

Sorgunun tüm sonuçlarını "foreach" döngüsünde harcadığınızdan emin olduğunuzu söylüyorsunuz? – Chris

cevap

2

kullanmaya çalıştık. Ekleme $ stmt-> kapatmak döngüsünün sonunda sorunu giderdi.