MYSQL / PHP Ausgabe in Array packen
Cluster
- datenbank
Hallo,
ich frage mich gerade ob es sinnig ist mehrfach die gleiche MYSQL Tabelle ab zu rufen.
Ich könnte mir vorstellen, es am Anfang der Seite einfach alle Daten in ein mehr Dimensionales Array zu packen, so könnte ich mir ein paar Datenbankabfragen sparen..
Aber wie packe ich das Ergebnis in ein Array
~~~php
$abfrage = "
SELECT *
FROM daten
WHERE
p1 BETWEEN $laengengradminus AND $laengengradplus
AND
p2 BETWEEN $breitengradminus AND $breitengradplus
";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$id = $row->id;
$firma = trim($row->name);
$strasse = $row->strasse;
$ort = utf8_encode($row->ort);
$plz = $row->plz;
$p1 = $row->p1;
$p2 = $row->p2;
$firmaurl = str_replace(" ", "-", $firma);
$ist ="http://url.de/".$ort."/".$firmaurl."/".$id.".htm";
$karte->linkMarker($p2,$p1,"$ist","http://URL.de/images/point.png");
}
Danke für eure Hilfe
Hi!
ich frage mich gerade ob es sinnig ist mehrfach die gleiche MYSQL Tabelle ab zu rufen.
Kommt drauf an. Oftmals ist es das wohl nicht (also pro Request betrachtet).
Aber wie packe ich das Ergebnis in ein Array
Du weißt also nicht, wie du Werte einem Array zufügst? Zunächst erstellst du ein leeres Array, damit es garantiert da ist, auch bei leerer Ergebnismenge.
$ergebnis = array();
In der Abfrageschleife fügst du dann die Werte an das Array an.
$ergebnis[] = $row;
im einfachsten Fall. Ansonsten erstellst du halt ein weiteres Array, fügt die gewünschten Elemente hinzu und übergibt das anstelle von $row dem $ergbnis-Array.
Lo!
In der Abfrageschleife fügst du dann die Werte an das Array an.
$ergebnis[] = $row;
im einfachsten Fall. Ansonsten erstellst du halt ein weiteres Array, fügt die gewünschten Elemente hinzu und übergibt das anstelle von $row dem $ergbnis-Array.
Lo!
Mal ne Frage dazu:
Nachdem ich die db-Abfrage gemacht habe, ist doch die Ergebnissmenge in einem Array???
Oder ist das "fetch_row" oder "fetch_object" usw. erst die Abfrage?
Ich dachte, das "mysql_query($query)" wäre der Zugriff?
Hi!
Nachdem ich die db-Abfrage gemacht habe, ist doch die Ergebnissmenge in einem Array???
Nein, sie befindet sich lediglich in einem internen Puffer der MySQL-API. mysql_query() liefert lediglich eine Ressourcenkennung darauf zurück. Um an die Daten selbst zu kommen, musst du sie einzeln mit den Fetch-Funktionen abrufen.
Die PDO-Extension tut aber so, als ob PDO::query() ein Array zurückliefert. Jedenfalls kann man über das Ergebnis dieser Funktion direkt mit foreach iterieren.
Lo!