MySQL -> Mehrdimensionales Array

Hallo,
ich habe schon im Forum gesucht, aber irgendwie nicht so recht eine passende Antwort gefunden. Ich habe eine MySQL Datenbank, dort möchte ich alle Werte, die mit
$ergebnis = mysql_query("Select * from blabla);
aufgerufen werden. Hierbei gibt es mehrere Ergebnisse. Mit fetch_array kann man aber immer nur eines rausholen. Für meine Anwendung bräuchte ich aber unbedingt ein mehrdimensionales Array, was mir die Ergebnisse à la $result = array['Spaltenname']['Zeile'] ausgibt. Gibt es da eine einfache Lösung, die genau das macht?

Gruss MastaDaDesasta
 
Mach dir doch solch ein Array selbst:
PHP:
$array = array();
while( $row = mysql_fetch_assoc($result) ) {
	foreach( $row as $key => $value ) {
		if( !isset($array[$key]) ) {
			$array[$key] = array();
		}
		$array[$key][] = $value;
	}
}
// print_r($array);
 
Danke, das hat geholfen. Aber noch eine Frage: Ich habe in einem Array jetzt mehrere gleiche Werte gespeichert. Und jetzt möchte ich anhand eines gegebenen Strings überprüfen, wie oft der genau in dem Array vorkommt. Gibt es dafür eine Funktion, weil array_search gibt immer nur den ersten Wert aus, also kommt bei count immer 1 heraus oder? Gibt es da eine Möglichkeit die Anzahl festzustellen? Ich hoff ihr versteht mein Problem. Hab schon überall gesucht aber auf nichts verwendbares gestoßen.


Gruss OBI
 
Ich möchte quasi mein Array aufsplitten:

$data[] = array('fach_id' => 'm', 'fach' => M1);
$data[] = array('fach_id' => 'e', 'fach' => E3);
$data[] = array('fach_id' => 'f', 'fach' => F1);
$data[] = array('fach_id' => 'm', 'fach' => M2);
$data[] = array('fach_id' => 'm', 'fach' => m1);
$data[] = array('fach_id' => 'e', 'fach' => E1);

Dieses Array möchte ich aufsplitten in 3 verschiedene Arrays, nämlich immer nach der 'fach_id' zusammengefasst;
$data1[] = array('fach_id' => 'm', 'fach' => M1);
$data1[] = array('fach_id' => 'm', 'fach' => M2);
$data1[] = array('fach_id' => 'm', 'fach' => m1);

$data2[] = array('fach_id' => 'f', 'fach' => F1);

$data3[] = array('fach_id' => 'e', 'fach' => E3);
$data3[] = array('fach_id' => 'e', 'fach' => E1);

Gibt es hierfür eine einfache Möglichkeit? Hab schon eine Ewigkeit rumprobiert, aber anscheinend steh ich grad auf der Leitung.


Vielen Dank für die Hilfe!

Gruss OBI
 
Probiere einmal folgendes:
PHP:
<?php
    for($i=0;$i < count($data);$i++){

      if($data[$i]['fach_id'] == 'e'){
        $data1[] = $data[$i];
      }
      if($data[$i]['fach_id'] == 'f'){
        $data2[] = $data[$i];
      }
      if($data[$i]['fach_id'] == 'f'){
        $data3[] = $data[$i];
      }
    }
?>
 
Hallo,
der Ansatz ist gut. Jetzt brauche ich nur noch eine Idee, wie ich diese if() Aufzählung Variabel zu gestalten:


Code:
$DB->query("SELECT DISTINCT fach_id FROM ibf_stunden order by fach_id ASC");
    for($i=0;$i < count($data);$i++)
{

while($row = $DB->fetch_row()) 
	{
      if($data[$i]['fach_id'] == $row['fach_id'])
		{
        $data1[] = $data[$i];
      		}
   	}
}

Nun brauch ich aber für oben bei dem $data1[] einen Counter, der das 1 immer erhöht.Aber wie binde ich den direkt in die Variable ein? Und würde das oben überhaupt klappen? Die DB Abfrage ist eine eigenständige Funktion.

Gruss OBI
 
Zurück