MySQL Queryergebniss in mehr dimensionalle Array

haloki

Grünschnabel
Hallo,

ich habe das folgende problem;

ich möchte die getNestedData Funktion in einer Klasse umschreiben.
PHP:
function getNestedData()
        {

            $ret = array();
            $lines = file(beispiel.txt);

            foreach ($lines as $line) {
                $line = trim($line);
                if (strlen($line) == 0)
                    continue;
                $parts = explode(',', $line, 3);
                $country = $parts[0];
                $region = $parts[1];
                $city = $parts[2];
                $ret[$country][$region][] = $city;
            }
            return $ret;
        }

Ich will die $parts-Werten aus drei Tabellen von meiner Datenbank ausfüllen, indem ich die Befehl

PHP:
$query = "SELECT countries.name, provinces.provincename, cities.cityname FROM `countries`, `provinces`, `cities` WHERE provinces.iso=countries.iso and provinces.id=cities.pid";

ausführe.Wie kann ich die Daten aus meiner Datenbank abfragen und mit return in der Format

PHP:
$ret[$country][$province][] = $city;

zurückgeben. Ich bedanke mich für eure Hilfe und wünsche euch allen ein frohes neues Jahr..

Viele Grüsse aus Istanbul.
 
Zuletzt bearbeitet:
Hi meintest du das so?

PHP:
$query = "SELECT countries.name, provinces.provincename, cities.cityname FROM `countries`, `provinces`, `cities` WHERE provinces.iso=countries.iso and provinces.id=cities.pid";
$res = mysql_query($query);
while( $row = mysql_fetch_assoc($res) ) {
	$dataArray[ $row['name'] ][ $row['provincename'] ][] = $row['cityname']
}
print_r($dataArray);
 
Zuletzt bearbeitet:
Erster Schritt ist erledigt. Array wird mit Daten befüllt. Jetzt gibt es ein weiteres Problem.

Die Datensaetze nach der Abfrage sind wie folgendes;

Deutschland, NRW, Dortmund
Deutschland, NRW, Köln
Deutschland, NRW, Düsseldorf
Deutschland, NRW, Bochum

und dein print_r($dataArray) ergibt das hier;

Deutschland, NRW, Bochum
Deutschland, NRW, Bochum
Deutschland, NRW, Bochum
Deutschland, NRW, Bochum
 
Mh Theopraktisch sollte das eingentlich ... hast du mal geguckt ob er vlt. mehrmals ein ergebnis rausschmeisst... Wenn ja ist eine GROUP BY clause im query wohl hilfreich...
 
Zurück