POST-Abruf in for-Schleife |
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
 |
|
POST-Abruf in for-Schleife |
 |
Ich sende an eine Datei eine Tabelle und Pärchen von Variablen namens spalte1 / wert1, spalte2 / wert2 usw und möchte die Werte eintragen. Ich kriegs bloß nicht hin die Werte richtig abzurufen. Mein Code:
$sql = "UPDATE $table SET";
for($i=1; $i<5; $i++){
$sql .= "$_POST[spalte$i] = $_POST[wert$i]";
echo "<br>$_POST[spalte$i] = $_POST[wert$i]";
}
$sql .= "WHERE id='".$uid."'";
Die Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE, expecting ']' in /var/www/web46/web/changedata.php on line 11
(bezieht sich auf $_POST[spalte$i] )
Ich hab auch schon $_POST[spalte[$i]] versucht, das ging auch nicht...
__________________
|
|
16.02.2009 11:52 |
|
|
1Sm!le

Mitglied
 

Dabei seit: 05.03.2005
Beiträge: 441
Herkunft: Berlin
 |
|
Ich gehe stark davon aus, dass er "$_POST[spalte$i] ..." nicht so komisch findet. Korrekt wäre das ja auch $_POST['spalte'.$i]."="....
Also sprich: $_POST gehört nicht unmarkiert in den $sql-String rein. Und "spalte" ist ein String, gehört also in Anführungszeichen.
__________________
|
|
16.02.2009 12:34 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
Themenstarter
 |
|
vielen Dank!
jetzt hab ich $sql .= "$_POST['spalte'.$i] = $_POST['spalte'.$i]";
die neue Fehlermeldung:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/web46/web/changedata.php
Meinst du ich sollte das $_POST erst zwischenspeichern? Oder gibts eine Möglichkeit, dass ers im SQL-String akzeptiert?
__________________
|
|
16.02.2009 12:42 |
|
|
1Sm!le

Mitglied
 

Dabei seit: 05.03.2005
Beiträge: 441
Herkunft: Berlin
 |
|
Das is genauso Quark wie vorher ... nachdenken
Du willst:
- eine Variable auslesen
- einen String anfügen (nämlich das Gleichheitszeichen)
- eine Variable auslesen
Das sind die drei Elemente
$_POST['spalte'.$i]
" = "
$_POST['spalte'.$i]
Und das ganze willst du in $sql anfügen.
Also musst du die 3 Teile verketten (mit . dazwischen) und dann anfügen
$sql .= $_POST['spalte'.$i]." = ".$_POST['spalte'.$i];
__________________
|
|
16.02.2009 14:50 |
|
|
cll

Hafifan in Action ->www.hafifieber.com
 

Dabei seit: 12.02.2005
Beiträge: 1.887
Herkunft: Bayern
Themenstarter
 |
|
achsooo
Sorry, ich stand aufm Schlauch. Danke!
__________________
|
|
17.02.2009 10:01 |
|
|
|
Impressum
|