Daten aus Datenbank in einen array schreiben

skydragon

Mitglied
Hallo lese aus einer Datenbank Name Vorname und dessen Geburtsdatum aus. Anschließend rechne ich das Alter aus und möchte dann alle ergebnisse in einen array einlesen.

[name1, vorname1 alter1] usw. um dann nach alter sortiert die werte auszugeben.

Ich hab aber leider keine Idee wie ich die in den Array einlesen kann.
kann mir einer Helfen?
 
PHP:
while($row = mysql_fetch_array($deineQuery))
{
    /* berechne Alter und anderes, die Keys von $row musst du natürlich entsprechend den Namen der Tabellenspalten in deiner Datenbank anpassen */
    $daten[] = array('name' => $row['name'], 'vorname' => $row['vorname'], 'gebdatum' => $row['gebdatum'], 'alter' => $berechnetesAlter);
}

/* Auf einen bestimmten Datensatz zugreifen */
echo $daten[1]['vorname'] . ' ist ' . $daten[1]['alter'] . ' Jahre alt';

/* Alle Datensätze durchlaufen */
foreach($daten as $data)
{
    echo $data['name'].$data['vorname'];
}

Nachtrag
Jaja, das passiert wenn man Code direkt im Antwortfenster schreibt... Immer diese Schnellposter ;)
 
Lass das Alter doch von SQL berechnen. Alternativ kannst du dein Array so füllen:
PHP:
$array = array();
$sql = mysql_query("Select * from db");
while($ausgabe = mysql_fetch_assoc($sql)){
array_push($array, $ausgabe[spaltenname])
}
 
Das ist eigentlich kein Problem, besonders Onkel Google hilft da gerne ^^ Meine Erfahrung aus den letzten 2 Wochen.

Lies mal alle Daten in eine Refferenzvariable ein ( $res = mysql_db_query() ) und lass dir diese splitten ( $split = mysql_fetch_array($res) ) danach einfach ne Schleife bauen.

Hier ein Beispiel für Bubblesort (wikipedia)

prozedur bubbleSort( A : Liste sortierbarer Elemente ) definiert als:
n := Länge( A ) - 1
wiederhole
vertauscht := falsch
für jedes i in 0 bis n wiederhole:
falls A[ i ] > A[ i + 1 ] dann
vertausche( A[ i ], A[ i + 1 ] )
vertauscht := true
falls ende
für ende
n := n - 1
während vertauscht
prozedur ende

Für das Array-Problem guck dir mal den Link an. Da kann man es einfach verstehen.

Grüße Thomas
 
Vielen Dank für die schnelle Hilfe, aber wie sortiére ich die daten nach dem Alter. Werd aus der PHP.NET nicht so wirklich schlau
 
Meinen Code müsstest du wie folgt erweitern, damit nach dem Alter sortiert wird. SORT_ASC steht hierbei für absteigende Sortierung nach dem Alter, jüngste also zuerst. Kann auch durch SORT_DESC ersetzt werden, dann wird die Sortierung umgekehrt.
PHP:
while($row = mysql_fetch_array($deineQuery))
{
    /* berechne Alter und anderes, die Keys von $row musst du natürlich entsprechend den Namen der Tabellenspalten in deiner Datenbank anpassen */
    $daten[] = array('name' => $row['name'], 'vorname' => $row['vorname'], 'gebdatum' => $row['gebdatum'], 'alter' => $berechnetesAlter);
    $alter[] = $berechnetesAlter;
}

/* Array sortieren, SORT_DESC kehrt die Sortierrichtung um */
array_multisort($alter, SORT_ASC, $daten);

/* Alle Datensätze durchlaufen */
foreach($daten as $data)
{
    echo $data['name'].$data['vorname'];
}
 
Zurück