2010-03-26 10 views
5

Ich habe hier eine geistige Leere und kann nicht für das Leben von mir eine Lösung finden.Hinzufügen von Datenbank-Ergebnissen zu Array

Mein Szenario ist, dass ich in PHP und MySQL programmieren. Ich habe eine Datenbanktabelle, die die Ergebnisse für eine bestimmte orderid zurückgibt. Die Abfrage kann maximal 4 Zeilen pro Bestellung und mindestens 1 Zeile zurückgeben.

Hier ist ein Bild von, wie ich die Ergebnisse zurückgeben möchte. alt text http://sandbox.mcmedia.com.au/nqlsolutions/images/packages.jpg

Ich habe alle Bestelldetails (Name, Adresse) ect in einer Tabelle namens "Bestellungen" gespeichert. Ich habe alle Pakete für diesen Auftrag in einer Tabelle namens "Pakete" gespeichert.

Was ich tun müssen, ist mit einer Schleife Ich brauche Zugriff auf jedes spezifische Element der Datenbank Ergebnisse haben (IE package1, itemstype1, package2, itemtype2) ect

ich eine Abfrage wie folgt bin zu versuchen, und habhaft nur die „Anzahl der Objekte:

$sql = "SELECT * FROM bookings_onetime_packages WHERE orderid = '".$orderid."' ORDER BY packageid DESC"; 
$total = $db->database_num_rows($db->database_query($sql)); 

$query = $db->database_query($sql); 

$noitems = ''; 
while($info = $db->database_fetch_assoc($query)){ 
$numberitems = $info['numberofitems']; 

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

$noitems .= $numberitems[$i]; 

} 

} 
print $noitems; 

ich brauche Zugriff auf jedes spezifische Element haben, weil ich sie erstellen müssen eine pDF-Vorlage ausfüllen‚ fpdf‘

ich hoffe, das macht Sinn Jede Richtung würde sehr geschätzt werden .

Antwort

14

Sie sollten etwas tun:

$data = array(); 
while($row = $db->database_fetch_assoc($query)) 
{ 
    $data[] = $row; 
} 

Jetzt sind $ Daten ein Array, in dem jedes Element eine Zeile des Abfrageergebnisses ist.

Dann können Sie auf die Zeilen als $ data [0], $ data [1] zugreifen, und die Elemente innerhalb der Zeilen als $ data [1] ['package'], $ data [0] ['itemtype' ], weil jede Zeile ein assoziatives Array ist.

Sie können die Anzahl der zurückgegebenen Zeilen mit count ($ data) ermitteln.

+0

Dank eine Million für Ihre Antwort David, sehr klar und genau auf. – Jason