2016-10-20 16 views
-1

Ich versuche MYSQL-Informationen mit dieses Code zu erhalten:Erste alle Ergebnisse von MySQL von PHP

$db->query("SELECT * FROM XYZ WHERE XYZ "); 
$res = $db->data(); 

In der Datenbank sind viele Zeilen, die mit meiner Anfrage zur Folge haben, aber in den $res Variable, ich habe nur eine davon.

Was muss ich tun, um ein Array aller Ergebnisse für diesen Code zu erhalten?

+0

Haben Sie schon versucht, '$ res = $ db-> query (“. .. ");'? – timmyRS

Antwort

0

Von PHP manual:

<?php 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5"; 

if ($result = $mysqli->query($query)) { 

    /* fetch object array */ 
    while ($row = $result->fetch_row()) { 
     printf ("%s (%s)\n", $row[0], $row[1]); 
    } 

    /* free result set */ 
    $result->close(); 
} 

/* close connection */ 
$mysqli->close(); 
?> 
+0

Es tut mir leid, ich kann den wichtigen Teil nicht finden, den ich falsch mache? – 4usolutions

+0

Sie müssen das Ergebnis aus der Abfrage speichern und zum Beispiel eine fetch_row ausführen, um alle Zeilen aus Ihrer Abfrage zu erhalten. – cpatricio

0
$sql= mysqli_query($this->db,"SELECT * FROM XYZ where XYZ") or die(mysqli_error($db)); 

     if(mysqli_num_rows($sql)>0){ 

         while($data = mysqli_fetch_object($sql)) 
         {       
          $details[] = $data; 
         } 

     } 

, was Sie falsch machen, ist gibt es mehrere Datensätze in Ihr Ergebnis & ihnen abzurufen alles, was Sie Schleife benötigt jeder Datensatz einzeln zu holen. Ihr Ansatz richtig ist, aber wie Sie nicht in einer Schleife verwendet haben, sind Sie nur ein Ergebnis bekommen als Daten

this helps ..

+0

ok, gibt es keinen schnelleren Weg, um alle Ergebnisse in einem Array zu erhalten? – 4usolutions

+0

Ich weiß nicht genau, welches ist schneller, aber Sie können versuchen, für Geschwindigkeitstest 'mysqli_fetch_array()' '- Holen Sie sich eine Ergebniszeile als assoziative, numerische Array oder beide ' mysqli_fetch_assoc() '- Holen Sie sich ein Ergebnis Zeile als assoziatives Array 'mysqli_fetch_row()' - Holen Sie sich eine Ergebniszeile als enumeriertes Array –

+0

Und eine andere Sache, die Sie tun können, begrenzen Sie Ihr Ergebnis von 'LIMIT' & holen Sie die nächsten Einträge durch Angabe von OFFSET aus der Abfrage –