"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

php variablen dilemma

noledge 24.12.2002 - 12:23 527 12
Posts

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
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!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
$num=$myrow[0];
echo $_POST[feld][$num];

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

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
:(

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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
ich versteh dein problem nicht:
$_POST[feld][$dummy] === INHALT DES FELDES feld[$dummy]

bsp:

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

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
hmm - k.a. wovon du da redest :D was fürn query???

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
gut zu wissen :)

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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 ...
Bearbeitet von atrox am 25.12.2002, 03:12
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz