Thomas: Alternative für while

Hallo,

habe nur eine kurze Frage: Ich versuche gerade ein PHP Script an meine Bedürfnisse anzupassen. Momentan werden aus einer Datenbank mit ca. 100 Einträgen zunächst per Zufallsprinzip 4 Einträge ausgewählt, diese 4 Einträge werden dann per echo-Befehl ausgegeben.

Die Ausgabe erfolgt über den while-Befehl

while($xy=mysql_fetch_array($abc))

echo ".$xy['spalte1']"

Das ganze funktioniert soweit gut, es werden alle vier Einträge korrekt ausgegeben. Jetzt allerdings möchte ich die Ausgabe durch einen Grafikeffekt aufwerten, der mittels JAvascript aufgerufen wird. Das Problem: Das Javacript arbeitet mit Variablen, die sich gegenseitig überschreiben, wenn die vier EInträge durch die while-Schleife nacheinander aufgerufen werden, somit funktioniert das Javascript immer nur für den letzten der vier Einträge.

Nun also meine vermutlich recht rudimentäre Frage: Wie kann ich diese while-Schleife umgehen und stattdessen die vier vorher zufällig ausgewählten Einträge aus der Datenbank nacheinander ohne Automatismus ausgeben, indem ich sie einzeln aufrufe?

So in der Art:

$xy1=mysql_fetch_array(&abc[1.Zeile])
echo ".$xy1['spalte1']"

$xy2=mysql_fetch_array(&abc[2.Zeile])
echo ".$xy2['spalte1']"

$xy3=mysql_fetch_array(&abc[3.Zeile])
echo ".$xy3['spalte1']"

$xy4=mysql_fetch_array(&abc[4.Zeile])
echo ".$xy4['spalte1']"

Ich hoffe es ist halbwegs verständlich... ;-)

VG, Thomas

  1. hi,

    Das ganze funktioniert soweit gut, es werden alle vier Einträge korrekt ausgegeben. Jetzt allerdings möchte ich die Ausgabe durch einen Grafikeffekt aufwerten, der mittels JAvascript aufgerufen wird. Das Problem: Das Javacript arbeitet mit Variablen, die sich gegenseitig überschreiben, wenn die vier EInträge durch die while-Schleife nacheinander aufgerufen werden, somit funktioniert das Javascript immer nur für den letzten der vier Einträge.

    Nun also meine vermutlich recht rudimentäre Frage: Wie kann ich diese while-Schleife umgehen

    Du willst sie nicht umgehen [1] - du braichst die Schleife, um alle vier Datensätze an den Client auszugeben.

    [1] Oder eine der anderen Schleifen, bspw. for. Oder du verzichtetest auch die Schleife, und schreibst die Ausgabe für jeden Datensatz ein mal hin (natürlich unsinnig).

    und stattdessen die vier vorher zufällig ausgewählten Einträge aus der Datenbank nacheinander ohne Automatismus ausgeben, indem ich sie einzeln aufrufe?

    Du willst dir für die clientseitige Verarbeitung eine geeignetere Struktur zur Übermittlung der Daten vom Server an den Client überlegen - bspw. ein Javascript-Array zu erzeugen könnte helfen, damit sich die Variablen nicht "gegenseitig überschreiben".

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }