php variablen dilemma

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_variablen_dilemma_60123/page_1 - zur Vollversion wechseln!


noledge schrieb am 24.12.2002 um 12:23

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 schrieb am 24.12.2002 um 12:44

$num=$myrow[0];
echo $_POST[feld][$num];

folgendes sollte eigentlich auch funktionieren:
echo $_POST[feld][($myrow[0])];


noledge schrieb am 24.12.2002 um 12:56

:(

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 schrieb am 24.12.2002 um 14:24

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 schrieb am 24.12.2002 um 14:33

Zitat von watchout
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".

Zitat
also, du kannst dir ganz einfach helfen, indem du schrittweise die sub-array's in eigenen variablen speicherst

wie? :confused:

$myrow[0] ist kein problem, klar. aber feld[$dummy] kann ich nicht auflösen, weil "feld" ja nur im $_POST existiert...


watchout schrieb am 24.12.2002 um 14:48

ich versteh dein problem nicht:
$_POST[feld][$dummy] === INHALT DES FELDES feld[$dummy]

bsp:

$var = $_POST['feld'][$dummy];


noledge schrieb am 24.12.2002 um 14:55

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 schrieb am 24.12.2002 um 15:25

hmm - k.a. wovon du da redest :D was fürn query???


watchout schrieb am 24.12.2002 um 15:47

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 schrieb am 24.12.2002 um 16:17

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 schrieb am 24.12.2002 um 16:31

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 schrieb am 24.12.2002 um 17:50

gut zu wissen :)


atrox schrieb am 25.12.2002 um 00:58

Zitat von atrox
$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 ...




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026