Cluster: MYSQL / PHP Ausgabe in Array packen

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
  1. 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!

    1. 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?

      1. 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!