php variablen dilemma
noledge 24.12.2002 - 12:23 527 12
noledge
CWNE #540
|
jungs, ich steh auf der leitung - helfts ma, vermutlich isses eh ganz einfach zu lösen...
ich hab ein formular mit mehreren textfeldern, der inhalt wird in ein array gespeichert (also feld1 in $feld[1], feld2 in $feld[2] usw).
diese werden per POST an ein anderes skript übergeben.
die zahl, welches textfeld er behandeln soll, kommt aus der datenbank, wieder in einem array, also zb $myrow[0].
die post-variablen werden über die superglobalen abgefragt, also wieder ein array.
wie sprech ich jetzt ein feld an?
theoretisch: $_POST[feld[$myrow[0]]]
praktisch gehts aber nicht, syntax error.
wo hab ich den knoten im hirn?
|
atrox
in fairy dust... I trust!
|
$num=$myrow[0]; echo $_POST[feld][$num];
folgendes sollte eigentlich auch funktionieren: echo $_POST[feld][($myrow[0])];
|
noledge
CWNE #540
|
danke, schön wärs, aber leider spielts das nicht. bei deinem vorschlag liefert der echo (bei beiden varianten) folgenden output: "Array[1]" - also die zahl geht problemlos, aber $_POST[feld] liefert den output "Array", weil es als array angesprochen werden will.
|
watchout
Legendundead
|
also, du kannst dir ganz einfach helfen, indem du schrittweise die sub-array's in eigenen variablen speicherst ps: du solltest nicht $_POST[feld] sondern $_POST[feld][($myrow[0])] schreiben
|
noledge
CWNE #540
|
ps: du solltest nicht $_POST[feld] sondern $_POST[feld][($myrow[0])] schreiben hab ich ja auch... ich hab nur gesagt $_POST[feld] liefert den output, der andere output kam eh vom myrow - wie gesagt, "die zahl geht problemlos". also, du kannst dir ganz einfach helfen, indem du schrittweise die sub-array's in eigenen variablen speicherst wie? $myrow[0] ist kein problem, klar. aber feld[$dummy] kann ich nicht auflösen, weil "feld" ja nur im $_POST existiert...
|
watchout
Legendundead
|
ich versteh dein problem nicht: $_POST[feld][$dummy] === INHALT DES FELDES feld[$dummy]
bsp:
$var = $_POST['feld'][$dummy];
|
noledge
CWNE #540
|
ah, check - ich muss den umweg über die zweite variable machen und kann $_POST[feld][$dummy] nicht direkt in einem query verwenden. über einen zweiten dummy funktionierts.
big thx!
edit: bzw mit einem dummy, wenn ich das myrow-array direkt dranhäng, was so auch funktioniert.
nochmals danke!
|
watchout
Legendundead
|
hmm - k.a. wovon du da redest was fürn query???
|
watchout
Legendundead
|
ich glaub ich weiss schon was du meinst - brauchst vielleicht den inhalt vom array in nem mysql-query und verwendest die string-parse-funktion vom php? tja - dann solltest du's entweder so schreiben: "TEEEEXXXTTT{$_POST['feld'][$dummy]}GEHHHHHTWEITER"oder den string unterbrechen und so schreiben: "TEEEEXXXTTT".($_POST['feld'][$dummy])."GEHHHHHTWEITER"generell solltest du so einen ausdruck auch in klammer setzen, nur bei einer ganz einfachen zuweisung is es absolut nicht nötig ps: http://www.php.net/manual/de/langua....string.parsing
|
noledge
CWNE #540
|
es sieht jetzt so aus: .....mysql_query("UPDATE seiten SET position='$dummy' WHERE ID=..... wobei statt $dummy vorher der variablenausdruck drinnenstand - dieser wird jetzt einfach dem dummy zugewiesen. ich denk genau das wirds sein - probiers jetzt aber nicht mehr aus, später vielleicht
|
watchout
Legendundead
|
jep das isses - für die nachwelt also auch wennst du's nimmer brauchst im double-quoted-string geht ein eindimensionales array noch mit einfachem reinschreiben, aber >1 dimension muss in {} geschrieben werden - siehe oben
|
noledge
CWNE #540
|
gut zu wissen
|
atrox
in fairy dust... I trust!
|
$num=$myrow[0]; echo $_POST[feld][$num];
folgendes sollte eigentlich auch funktionieren: echo $_POST[feld][($myrow[0])]; ich hab das jetzt nicht ganz verstanden,... wo war jetzt der unterschied zu meiner ersten methode ? /edit: ahh.. ok .. das mit dem string ...
Bearbeitet von atrox am 25.12.2002, 03:12
|