Christian Kruse: 2-dimensionales Array aus MySQL-DB erzeugen?

Beitrag lesen

你好 peter,

VEREIN
+----+----------+
| id | name     |
+----+----------+
|  1 | verein a |
+----+----------+
|  2 | verein b |
+----+----------+

MITGLIED
+----+----------+
| id | name     |
+----+----------+
|  1 | person 1 |
+----+----------+
|  2 | person 2 |
+----+----------+
|  3 | person 3 |
+----+----------+
|  4 | person 4 |
+----+----------+

VM
+-----+-----+
| Vid | Mid |
+-----+-----+
|  1  |  1  |
+-----+-----+
|  1  |  2  |
+-----+-----+
|  1  |  3  |
+-----+-----+
|  2  |  2  |
+-----+-----+
|  2  |  3  |
+-----+-----+
|  2  |  4  |
+-----+-----+

Ausgabe soll dann am Ende sein:

verein a

  • person 1
  • person 2
  • person 3

verein b

  • person 2
  • person 3
  • person 4

Hätte dazu am liebsten direkt aus der sql-SELECT -Abfrage als
Rückgabewert ein zweidimensionales Array, das die entsprechenden Elemente
enthält.

Nun, da musst du mit JOINs arbeiten. Eine moegliche Loesung (ungetestet)
waere:

$res = mysql_query("
SELECT
  verein.name,mitglied.name
 FROM
  verein
 LEFT JOIN
  vm ON vm.vid = verein.id
 LEFT JOIN
  mitglied ON miglied.id = vm.mid;");

$ary = Array();
while($row = mysql_fetch_row($res)) {
  $ary[$res[0]][] = $row[1];
}

Damit hast du einen zweidimensionalen Array der von dir gewuenschten Form.

再见,
 CK

--
Nur die Weisesten und die Dümmsten können sich nicht ändern.
http://wwwtech.de/