Christian Seiler: mySQL und PHP, wie lese ich am besten aus...

Beitrag lesen

Hallo,

SELECT feld FROM karte WHERE x > '$startx' AND x < 'endx' AND y > '$starty' AND y < '$endy'

SELECT feld, x, y FROM karte WHERE x > '$startx' AND x < '$endx' AND y > '$starty' AND y < '$endy' order by x, y

Wie lese ich das jetzt am besten aus, um auf alle Informationen gut Zugriff zu haben. Am liebsten wäre mir natürlich so etwas wie karte[2][7], die dann die Informationen für das feld 2;7 enthält. Kann mir da jemand helfen?

Wenn der SQL-Query-String in $query steht, dann so:

------------------------------ schnipp -----------------------------
$my_result = mysql_query ($query);
if (!$my_result) {
  // fehlerbehandlung
}

$karte = array ();
$aktuell_y = array ();
$aktuell_x = -1;

while ($arr = mysql_fetch_array ($my_result)) {
  if ($aktuell_x != $arr["x"]) {
    if ($aktuell_x != -1) {
      $karte[$aktuell_x] = $aktuell_y;
    }
    $aktuell_y = array ();
    $aktuell_x = $arr["x"];
  }
  $aktuell_y[$arr["y"]] = $arr["feld"];
}
if ($aktuell_x == -1) { // kein Datensatz
  // Fehlerbehandlung
}
$karte[$aktuell_x] = $aktuell_y;

unset ($aktuell_y);
unset ($aktuell_x);
------------------------------ schnapp -----------------------------

Grüße,

Christian