Vinzenz Mai: Datenbankwerte in ein Array bringen

Beitrag lesen

Hallo Frank,

$result = mysql_query("SELECT * FROM termine") or die(mysql_error());

warum nicht:

  
$param_d['highlight'] = array();  
# Weise zuerst Dein SQL-Statement einer Variablen zu,  
# praktisch für das Debuggen  
$query  = '[code lang=sql]SELECT datum, termin FROM termine
~~~';  
  
# Lasse die Abfrage ausführen mit Deiner etwas brutalen Fehlerbehandlung.  
$result = mysql\_query($query) or die(mysql\_error());  
[/code]  
Du erwartest ernsthaft, dass der folgende Code funktioniert?  
  

> $param\_d['highlight']= array(  
> for($x=0;$x<mysql\_num\_rows($result);$x++)  
> {  
> $datum = mysql\_result($result,$x, "datum");  
> $termin = mysql\_result($result,$x, "termin");  
> '$datum'=>'$termin',  
> }  
> );  
> Geht aber nicht, weil PHP ein ' erwartet anstatt noch mehr Code.  
  
Ja, steht ja klar und deutlich in der Dokumentation von [array()](http://www.php.net/manual/de/function.array.php). Du könntest wie folgt vorgehen:  
  
~~~php
# Lese die Ergebnismenge datensatzweise aus  
# Ob Du vorher mit mysql_num_rows() überprüfst,  
# ob überhaupt Daten vorhanden sind oder hinterher  
# ob Dein Array leer ist, sollte keine Rolle spielen.  
while ($row = [link:http://www.php.net/manual/de/function.mysql-fetch-array.php@title=mysql_fetch_array()]) {  
    # Solange Daten vorhanden sind, fülle mit den Daten Dein Array  
    $datum  = $row['termin'];  
    $termin = $row['datum'];  
    $param_d[$datum] = $termin;  
    # Du könntest auf die Zuweisungen zu den Hilfsvariablen verzichten:  
    # $param_d[${row['datum']}] = $row['termin'];  
}  
  
# sind Daten vorhanden  
if (empty($param_d)) {  
    # keine Daten vorhanden,  
    # reagiere entsprechend  
}  
else {  
    # verarbeite Deine Daten  
}  

Freundliche Grüße

Vinzenz