Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] POST-Abruf in for-Schleife (https://www.gegen-bilderklau.net/thread.php?threadid=150495)


Geschrieben von cll am 16.02.2009 um 11:52:

  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...



Geschrieben von 1Sm!le am 16.02.2009 um 12:34:

 

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.



Geschrieben von cll am 16.02.2009 um 12:42:

 

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?



Geschrieben von 1Sm!le am 16.02.2009 um 14:50:

 

Das is genauso Quark wie vorher ... nachdenken Augenzwinkern
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];



Geschrieben von cll am 17.02.2009 um 10:01:

 

achsooo smile Sorry, ich stand aufm Schlauch. Danke!


Forensoftware: Burning Board, entwickelt von WoltLab GmbH