Moin und vielen Dank schonmal! :D
Hi,
Genau diese Information enthielt deine unvollständige Fragestellung leider nicht.
Sorry!
Na dafür kommen also eigentlich nur zwei ausgelesene Spalten in Frage, einmal für's value und einmal für den Textinhalt der Option. Musst also nur deine Queries auch entsprechend schreiben, dann funktioniert's doch.
Nope! Die Krux liegt darin das der, der die Funktion nachher nutzen möchte(*) selber bestimmen kann was aus der Antwort des Querys (wie auch immer formatiert) verwendet werden soll. Wenn der Query 3 Spalten abfragt, oder 1 oder 2 und diese Auf eine bestimmte Art und Weise ausgeben möchte. Zb, das Feld 'name', 'nachname', 'geburtstag' und diese in der Foramtierung "$r[nachname],$r[name] ($r[geburtstag])" im Optionsfeld erscheinen soll, reicht es nicht einfach Index und ein weiteres Feld aus zulesen. (ersteres war auch am Anfang schon kein Problem, daher hatte ich am Einganspost die Codezeile "$out = '<option value="'.$row[$value].'"> [..]" eingefügt. Die ja zeigt, dass man mit der Funktion-übergebenen-Werten einzelne bestimmte Felder aus Arrays "gesteuert" auslesen kann.) Aber wenns etwas kompliziertere Formatierung wie im Nach/Name/Geburtstags-Beispiel verlangt versagt das Konzept.
Naja, is nicht schlimm, muss sich auch keiner mehr den Kopf drüber zerbrechen!
(*) Das bin nur ich :)
Man müsste bei PHP so ein Funktion wie bei Javascript eval() haben die einfach mal Inhalte aus einem String in echte Funktionen/Variablen um-interpretiert.
Erstens hat man die ja - heißt auch genauso - und zweitens wär's natürlich idiotisch, die zu benutzen.
Nope!^2 Damit hab ich mir auf jeden Fall den Goldenen Facepalm der Woche eingefangen! Tut mir echt Leid.
Ich dachte nicht das es die Funktion gibt. Und sie löst das Problem auch genau wie gedacht.
Hier mal am Beispiel um es zu zeigen. Plus Alternativbeispiel das die freie Verwendungsmöglichkeit zeigt.
echo "Feld: Person <select>";
echo getOptions("SELECT name,nname,geb FROM pers",'$out .= "<option> $row[nname],$row[name] ($row[geb]);"')
echo " </select>
Feld: Auto <select>";
echo getOptions("SELECT id,ps,farbe,modell FROM auto",'$out .= "<option value=$row[id]> $row[modell] - $row[Farbe] ($row[farbe]);"')
echo "</select>";
function getOptions($query,$outstring)
{
$l=mysql_query($query);
while($row = mysql_fetch_assoc($l)) eval($outstring);
return $out;
}
MfG ChrisB
Vielen Dank!
Viele Grüße,
Rob