Dynamische MySQL Abfrage
Christina
- php
Hallo beienander HIIIILFEE?
Kann mir bitt jemand bei der fehlersuche helfen ich probiere es jetzt schon seit 2 Stunden und komme nicht weiter.
Was mache ich falsch???
if(isset($_POST["save"])){
$z = 0;
$query2 = "
UPDATE ".$_GET["tabelle"]."
SET bezeichnung = ".$_POST["bezeichnung"].", ".
//Ausgaben der unterschiedlichen specs while 3
while ($z <= $tol["specs"]-1){
$var = $z+1;
"specs".[$var] = $_POST["specs".[$var]].", ";
$z++;
}//end while 3
."bemerkung = ".$_POST["bemerkung"].", pdf = ".$_POST["pdf"].", status = ".$_POST["status"].", package = ".$_POST["package"]."
WHERE id = ".$_GET["bauteil_id"]."
;";
mysql_query($query2);
}
Die Folgende Fehlermeldung kommt immer:
Parse error: parse error, unexpected T_WHILE in /www/htdocs/almayo/bauteil/main_de/bearb_bau.php on line 38
Vielen Dank in voraus.
Christina
Hallo,
Parse error: parse error, unexpected T_WHILE in /www/htdocs/almayo/bauteil/main_de/bearb_bau.php on line 38
Damit hast du alle Informationen die du benötigst, nämlich dass dein PHP-Parser
while ($z <= $tol["specs"]-1){
nicht verstanden hat, und zwar weil da eine spitze Klammer ist, wo sie nicht sein sollte. Ich kann mir wirklich nicht erklären, wieso du zwei Stunden brauchst, um eine solche Fehlermeldung nachzugooglen (hast du doch gemacht?), und mit den Erläuterungen dazu nichts anzufangen.
Grüße aus Barsinghausen,
Fabian
Hi,
Parse error: parse error, unexpected T_WHILE in /www/htdocs/almayo/bauteil/main_de/bearb_bau.php on line 38
Damit hast du alle Informationen die du benötigst, nämlich dass dein PHP-Parser
while ($z <= $tol["specs"]-1){nicht verstanden hat, und zwar weil da eine spitze Klammer ist, wo sie nicht sein sollte.
Naja, Du hast maximal 6 Minuten gebraucht, um einen Fehler zu finden, der keiner ist, dafür aber den Fehler selbst nicht.
Und aus der Fehlermeldung geht klar hervor, daß das while stört, nicht irgendetwas, was später kommt.
$query2 = "
UPDATE ".$_GET["tabelle"]."
SET bezeichnung = ".$_POST["bezeichnung"].", ".
//Ausgaben der unterschiedlichen specs while 3
while ($z <= $tol["specs"]-1){
Am Zeilenende der Zeile "SET" ist der Fehler - eine while-Schleife läßt sich nicht mit einem String verknüpfen.
cu,
Andreas
Danke für die schnelle Antwort aber wie kann ich dann das Ergebniss aus meiner while schleife in den query rein bringen.
Gruß Christina
Hi,
Danke für die schnelle Antwort aber wie kann ich dann das Ergebniss aus meiner while schleife in den query rein bringen.
Indem Du nicht die while-Schleife mit dem String verknüpfst, sondern die Strings, die Du innerhalb der Schleife ermittelst.
cu,
Andreas
Erst mal Danke.
Aber ich bin ziemlich neu mit PHP.
Funktioniert aber leider auch nicht wenn ich die Klammer raus nehme.
Gruß Christina
Hallo,
Funktioniert aber leider auch nicht wenn ich die Klammer raus nehme.
Nein, tut es nicht. Den (zugegeben) versteckten Hinweis auf die Lösung deines Problems hast du jedoch leider nicht gefunden: Finde heraus, was die Fehlermeldung bedeutet!
Grüße aus Barsinghausen,
Fabian
Hi @all!
Ich bin weder Profi in PHP, noch habe ich so ganz verstanden, was du willst.
Jedoch glaube ich, folgende Fehler entdeckt zu haben:
Mit den " und ' so durcheinander,
du willst sicherlich echo specs... verwenden,
Ich weiß nicht genau, ob folgendes deinem Zweck entspricht, aber da sagt mir
mein PHP Programm wenigstens, dass das ein korrekter Code ist:
if(isset($_POST["save"])){
$z = 0;
$query2 = " UPDATE
".$_GET['tabelle']."
SET
bezeichnung = ".$_POST['bezeichnung'].",
".
while ($z <= $tol["specs"]-1){
$var = $z+1;
echo 'specs'.$var.' = ".$_POST['specs'.$var.''].",\n';
$z++;
}
."
bemerkung = ".$_POST['bemerkung'].",
pdf = ".$_POST['pdf'].",
status = ".$_POST['status'].",
package = ".$_POST['package']."
WHERE
id = ".$_GET['bauteil_id']."
;";
mysql_query($query2);
}
Vielleicht oder hoffentlich hilft es dir ja weiter.
MfG, Dennis.
Hi @all!
du willst sicherlich echo specs... verwenden,
nein Dennis, das glaubst du nicht!
echo 'specs'.$var.' = ".$_POST['specs'.$var.''].",\n';
Du glaubst:
$variable = 'specs'...
und willst die dann am Ende, nach der While Schleife ausgeben.
MfG, Dennis.
Hello,
anderes Thema:
Du übernimmst in ein DB-Query, die aus einer externen Quelle stammen, ohne sie zu prüfen und abzusichern. Das ist eine schlimme Sicherheitslücke für Deine Datenbank. Bevor Du den Code ins Netz stellst, schau Dir bitte mal Threads und Manualseiten zu den Themen:
Und weiterhin viel Spaß
Liebe Grüße aus http://www.braunschweig.de
Tom