2016-03-31 20 views
0

Ich habe diesen Code funktioniert aber nur auf halbem Weg, es ist in der Lage, alle Informationen, die ich brauche jedoch auf die Rückkehr zurück, eine der JSON-Array wird zweimal zurückgegeben, warum ist das? Ich kann nicht herausfinden, warum.PHP und Mysql Problem mit Abfrage zurück

Hier ist mein Code:

$rows = mysql_num_rows($res); 
$array = array(); 
$i = 0; 
while($row = mysql_fetch_array($res, MYSQL_NUM)) { 
    $array[$i] = (int)$row[0] . "\n"; 
    $i++; 
    if ($i > $rows){ 
     break; 
    } 
} 

$JsonArray = array(); 

for($i = 0; $i < $rows; $i++){ 

    $q = "SELECT firstName, lastName, email from $mysql_database.$UsersTable WHERE idUser = $array[$i]"; 
    $res = mysql_query($q, $connect) or die(mysql_error()); 
    while($row = mysql_fetch_assoc($res)){ 
     $new_array[] = $row; // Inside while loop 
    } 
    $JsonArray[$i] = $new_array;     
} 

echo json_encode($JsonArray); 

Dies ist das Ergebnis:

Alles was ich brauche ist die zweite und die dritte, aber irgendwie weiß ich nicht, warum es das erste zweimal ausgibt. Wie kann ich das Ergebnis besser im JsonArray formatieren?

+1

Können Sie das Ergebnis von 'print_r ($ JsonArray)' – mseifert

+1

zeigen Bitte formatieren Sie Ihren Code vor dem Posten. – Jamie

Antwort

0

Von dem, was Sie sehen, versuchen Sie, Ihre Ergebnismenge aus der Datenbank für die Abfrage abzurufen.

Sie müssen nicht alle diese Schleifen verwenden. Alles, was Sie tun müssen, ist:

$q = "SELECT firstName,lastName,email from $mysql_database.$UsersTable WHERE idUser=$array[$i]"; 
$res = mysql_query($q,$connect) or die(mysql_error()); 
$new_array = mysqli_fetch_assoc($res); 
mysqli_free_result($res); 

Sie brauchen diese while-Schleife für jede Zeile nicht.

+0

Hallo Ihr Recht, aber ich habe immer noch die gleiche Ausgabe – Aboogie

+0

Nach dieser Zeile $ new_array = mysqli_fetch_assoc ($ res); Fügen Sie diesen Code hinzu: mysqli_free_result ($ res); Sag mir, ob es funktioniert –