phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] list()

[php] AW: [php] list()

Gloss Mathias Mathias.Gloss_(at)_start.de
Thu, 1 Mar 2001 15:28:09 +0100


Aloha,

> ----------
> Von: 	Andreas Bender[SMTP:bendix_(at)_ldknet.org]
> 
> Ich habe ca. 30 Spalten in einer Tabelle und möchte die Werte pro Zeile
> mit list() in 
> Variablen übergeben. 
> 
> 1. Gibt es sowas wie list(*), daß mir php die Variablen nach den Feldnamen
> benennt, 
>    ohne daß ich list($wert1, $wert2,...) schreiben muß?
> 
Nein. Du kannst aber:

(Annahme : Tabelle mit den Spalten id, vorname, nachname

a) die Werte in einen Hash schreiben
    $h_ergebniss = mysql_fetch_row()
    Dann hast du $h_ergebniss['id'], $h_ergebniss['vorname'],
$h_ergebniss['nachname'], 

b) zusätzlich eine Schleife über den Hash laufen lassen und mit variablen
Variablen
    Variablen erzeugen, die genauso heissen wie die Tabellenspalten:
    while (list($key, $val) = each($h_ergebnis)) { 
      $$key = $val; 
    }
    Dann hast du Variablen wie $id, $vorname, $nachname

> 2. Da ich pro HTML-Seite immer 2 Zeilen aus dieser Tabelle auslesen will,
> müssten 
>    die Variablen sich aus dem Feldnamen und der Jahreszahl
> zusammensetzten. 
>    Wie stelle ich das an? 
> 
Entweder möglichkeit a) mit 2 verschiedenen Hashes oder bei b)
$jahr = 1999;
while (list($key, $val) = each($h_ergebnis)) { 
   ${$key.$jahr} = $val; 
}
Dann hast du $id1999, $vorname1999, $nachname1999.

Soweit mir dünkt dürfen Variablen  nicht mit einer Zahl anfangen ....

Die Hashlösung ist meist die bessere, da da alle Verschiedenen Werte UND 
Spaltennamen zusammengehoerend handlich gespeichert sind. 

> BTW: Sollte mein Problem nur durch einen großen Programmieraufwand zu
> lösen sein, dann tippe 
> ich die Variablen vielleicht doch besser per Hand ein. 
> 
Hm, eigentlich erforderts nur daß man im Handbuch sich mal "variable
Variablen" und "Variablentypen"
durchliest - dazu noch etwas brain() benutzen ;)

Viele Grüße, Mathias



php::bar PHP Wiki   -   Listenarchive