RobRobson: [gelöst] Ein Array ferngesteuert auslesen

Beitrag lesen

Guten Abend mittlerweile,

Hi,

  • SELECT name,nname,geb FROM ...
  • $datensatz = mysql_fetch_array($result, MYSQL_NUM) // also bspw. entsprechend array('Robert', 'Robson', '17.02.1990')
  • vsprintf('%2$s,%1$s (%3$s)', $datensatz)

Ergebnis: Robson,Robert (17.02.1990)
Beispiel für *sinnvolle* Umsetzung - siehe oben.

Cool, vielen Dank! Ich hab ausser in C noch nicht mir printf oder vsprintf gearbeitet.
Aber entweder bin ich total blöd oder es trifft immer noch nicht den Kern des Problmes, nämlich das man der Funktion von aussen mitteilen kann wie man den Ausgabe String formatiert haben will. Der variiert ja von Verwendung zu Verwendung der Funktion. Und Dein vsprintf() befindet sich ja innerhalb der Funktion. Soll mal ein DB-Wert in Klammern stehen, mal einer durch Punkte getrennt oder sonstirgendwie ausgegeben werden müsste man ja doch wieder in der Funktion selber Abzeige schaffen. Das soll ja verhindert werden, in dem man schon beim Programmaufruf die gewünschte Ausgabeformatierung mitgegeben wird. (Sorry falsch ich grad derb auf dem Schlauch stehe und es partou nicht erkennen kenn :D)

Aber Du hast recht, mit eval() bekommt man wirklich mehr Probleme.
Im Moment schaut meine Lösung ja noch wie oben gepostet aus. Aaaaaaber das funktioniert irgendwie nicht wenn der $outstring der Funktion übergeben wird. Warum auch immer.

  
Bsp1 -> funktionert!  
$outstring = '$row[name] - $row[blubb]';  
while($row=mysql_fetch_assoc()) {$out .= "<option >"; eval($outstring); }  
  
Bsp2 -> funktionert nicht!  
printOptions('SELECT...','$row[name] - $row[blubb]');  
  
function printOptions($query,$outstring)  
{  
   while($row=mysql_fetch_assoc()) {$out .= "<option >"; eval($outstring); }  
}  
  
---> erzeugt den Fehler das nicht evaluieren kann!  
Verstehe ich absolut nicht, warum der überladene String nicht erkannt wird.  

Viele Grüße,
Rob