[PHP/MySQL] Problem mit Insertbefehl

djjlx

---???---
ID: 62937
L
9 Mai 2006
599
21
Hallo!

Ich hab ein kleines Problem mit einen InsertBefehl!

:arrow: Fehlermeldung:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '100') VALUES ('0')' at line 1

:arrow: Befehl:
mysql_query("INSERT INTO test (100) VALUES ('$sumoffen')")or mysql_error();


:arrow: Spaltenname: 100

Kann der Spaltenname Grund für den Fehler sein?

LG
 
hast du es mal mit
PHP:
<?php
print("INSERT INTO `test` (`100`) VALUES ('".$sumoffen."')");
mysql_query("INSERT INTO `test` (`100`) VALUES ('".$sumoffen."')") or die (mysql_error());
?>
probiert?? Zum einen wird dir ausgegeben ob die Variable richtig ist zum anderen kannst du dann den Fehler direkt analysieren, weil das Query so dastehen hast, wie der MySQL Server es bekommt.
 
Wahrscheinlich ist dir geholfen, wenn du um die 100 zwei `rum machst.

Code:
INSERT INTO test (`100`) VALUES ...

Dann müsste MySQL kapieren, dass das keine Zahl, sondern ein Spaltennamen ist. Aber die Frage, warum du Zahlen als Spaltennamen verwendest, stellt sich mir trotzdem. :roll:
 
Ja stimmt mit ` klapps

Danke

Zahlen als spaltennamen sind deswegen weil es kontonummern sind

LG
 
Jetzt hab ich gleich noch ein Problem! :(

:arrow: Code:

PHP:
$time = time();
$i = 0;
$sumoffen = 0;
$res = mysql_query("SELECT id,guthaben,pop_verg FROM user WHERE pop_verg >= '0.010'")or die(mysql_error());
while ($data = mysql_fetch_array($res))
		{
		$i = $i++;
		$userid = $data["id"];
		$guthaben = $data["guthaben"];
		$pop_verg = $data["pop_verg"];
		$zahl = $pop_verg*100;
		$zahl = floor($zahl);
		$betrag = $zahl/100;
		$abs = "Admin";
		$betreff = "Tägliche Umbuchung der Loginvergütung";

		mysql_query("UPDATE user SET guthaben = guthaben + '$betrag', pop_verg = pop_verg-'$betrag' WHERE id = '$userid'");
		mysql_query("INSERT INTO kontoauszug (id, betrag, user, betreff, time) VALUES ('$userid','$betrag','$abs','$betreff','$time')")or die(mysql_error());
		$sumoffen = $sumoffen+$betrag;
        }

        mysql_query("INSERT INTO `konten` (`100`) VALUES ('".$sumoffen."')") or die (mysql_error());

        echo"Umbuchung abgeschloßen($i Umbuchungen - Gesamtbetrag: $sumoffen )";


Alles in der Schleife funktioniert!
Der Befehl nach der schleife was nun zwar funktioniert aber gleich 3 mal ausgeführt wird macht mir noch Kopfschmerzen und leider ist die Var $sumoffen & $i leer bzw null nach der schleife!

lg
 
Zuletzt bearbeitet:
Hast du evtl. um den geposteten Code herum noch irgendwelche weitere Schleifen?

Und benutz doch bitte Satzzeichen in deinen Fragen.
 
Ich würd ja behaupten die Schleife wird gar nicht erst ausgeführt.. schonmal das getestet?
 
Mach doch mal in der Schleife eine Ausgabe der beiden Variablen. Dann siehst du evtl, wann und wie die gelöscht werden.
 
Ja hab!

die Beträge werden den Usern korrekt gutgeschrieben und die Kontoauszüge stimmen auch! Daher nehm ich an das die Schleife funktioniert :-?

LG
 
Mach doch mal in der Schleife eine Ausgabe der beiden Variablen. Dann siehst du evtl, wann und wie die gelöscht werden.

Ok Hab jetzt in der letzten zeile in der schleife eine ausgabe eingefügt.

PHP:
 echo"Summe Offen: $sumoffen & I: $i<br>";

Die Ausgabe ergibt:

Summe Offen: 0.01 & I: 1
Summe Offen: 0.02 & I: 2
Summe Offen: 0.02 & I: 2

Hätte aber bei jeder zeile 0.01 erhöhen müssen und i um 1!

aber die SQL Befehle in der Schleife wurden korrekt ausgeführt.
3 mal immer 0.01.
Anscheinend wir ab dem 2 User nicht weiter mitgezählt bzw. erhöht ?!

Welche dritte Schleife?

?

LG
 
PHP:
...{
		mysql_query("UPDATE user SET guthaben = guthaben + '$betrag', pop_verg = pop_verg-'$betrag' WHERE id = '$userid'");
		mysql_query("INSERT INTO kontoauszug (id, betrag, user, betreff, time) VALUES ('$userid','$betrag','$abs','$betreff','$time')")or die(mysql_error());
		$sumoffen = $sumoffen+$betrag;
        }...

Also anscheinend hat es etwas mit diesen Querys (in der schleife) zu tun.
Nehm ich diese raus, dann wird alles ordnungsgemäss gezählt und erhöht.

Der query ausserhalb der schleife wird jetzt nur mehr einmal durchgeführt.
Warum weis ich nicht !:ugly:

:wall::wall::wall:

LG
 
Probier mal jeweils einen der beiden Befehle ob die funktionieren, also den einen abschalten (mit z.B. "//").

Falls der Fehler nur bei einem kommt, dann weißt du ja an welchem du Arbeiten musst, wenn nicht, dann kann es eigentlich nicht an den Abfragen liegen....

Wenn du einen Fehler in dem Query hast, dann wird meist (glaube immer) der nachfolgende Code gar nicht mehr ausgeführt, was die Fehler bei der Testausgabe dann ergibt. Und setz hinter das erste QUery auch nochmal ne Fehler ausgabe