Eintrag in DB funktioniert nicht

Donni

Mitglied
Ich weis zwar nicht ob ich zu blöd bin zum suchen, aber ich habe auf jeden fall nichts gefunden was mir weiter hilft.
Ich habe mir ein tool gebastelt in das man eintragen kann wieviele Würfe man hat. Dann wertet ein Script es aus und gibt aus was halt raus kommt. Nun will ich diese Ausgabe auch in die DB eintragen. Aber er zeigt mir immer ein Fehler an
Parse error: parse error, unexpected T_VARIABLE, expecting '...
Nun habe ich schon einiges ausprobiert. Er zeigt an das der Fehler in der Zeile
$eintrag = "INSERT INTO wuerfel (Anzahl, Ergebniss, Uhrzeit, Datmu) VALUES ('$zahl', '$b', '$uhrzeit', '$datum')";
liegt, aber wo? Ich bitte im Hilfe.

Tabelle besteht aus id, Anzahl, Uhrzeit, Ergebniss, Datum. Ich hoffe das reicht als Info, wenn nicht werde ich die erforderlichen Daten hinzufügen.

PHP:
<?

$host = "****";
$user = "****";
$sqlpw = "****";
$db = "****";

$conn = mysql_connect($host,$user,$sqlpw) or die("Keine Verbindung mit der Datenbank");   //mit MySQL verbinden
mysql_select_db($db,$conn);

$b=0;
	for($count = 1; $count <= $zahl; $count++)
	{
  		$zufall = rand(1,6);
			  $b=$b+$zufall;
				if($zufall==6){
				$count--;
				}
	}
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);

echo "Es wurde am $datum um $uhrzeit mit $zahl Würfeln eine Punktzahl vom $b erreicht."

$eintrag = "INSERT INTO wuerfel (Anzahl, Ergebniss, Uhrzeit, Datmu) VALUES ('$zahl', '$b', '$uhrzeit', '$datum')";
$eintragen = mysql_query("$eintrag");

mysql_close($conn);

?>
 
Probier mal Folgendes:
PHP:
$query = '
	INSERT INTO
	        `wuerfel`
	  SET
	        `Anzahl`    = "'.mysql_real_escape_string($zahl).'",
	        `Ergebniss` = "'.intval($b).'",
	        `Uhrzeit`   = "'.$uhrzeit.'",
	        `Datmu`     = "'.$datum.'"
	';
$result = mysql_query($query)
	or die(mysql_error());
Wo kommt eigentlich die Variable $zahl her? Und sind die Spaltenbezeichner „Ergenbiss“ und „Datmu“ wirklich so gewollt?
 
PHP:
$eintrag = "INSERT INTO `wuerfel` (`Anzahl`, `Ergebniss`, `Uhrzeit`, `Datum`) VALUES ('".$zahl."', '".$b."', '".$uhrzeit."', '".$datum."')"; 
$eintragen = mysql_query($eintrag);
Probier das mal.

Da stand Datmu statt Datum.
Die Anführungszeichen bei mysql_query() würde ich auch weg lassen.

Stimmt... Dass die Variable $zahl nicht auftaucht (außer einmal kurz in der Schleife (auch hier ohne Wert)) hatte ich gar nicht bemerkt.
 
Zuletzt bearbeitet:
Die Variable $zahl wird aus dem vorherigen Formular übertragen und hat somit einen Wert.
Habe nun beide Vorschläge ausprobiert, aber beide zeigen immernoch ein fehler an.
Nochmal ne genauere difinition meiner DB. Vielleicht müssen die Felder ja anders benannt werden.

id int(10) UNSIGNED Nein auto_increment
Anzahl int(11) UNSIGNED Nein 0
Ergebniss int(11) UNSIGNED Nein 0
Uhrzeit time Nein 00:00:00
Datum date Nein 0000-00-00

Ich hoffe das das hält. Ich weis nicht ob die DB das Datum und Uhrzeit vielleicht selber einträgt nd ich somit die Variablen weglassen muss.
 
Donni hat gesagt.:
Er zeigt an das der Fehler in der Zeile
$eintrag = "INSERT INTO wuerfel (Anzahl, Ergebniss, Uhrzeit, Datmu) VALUES ('$zahl', '$b', '$uhrzeit', '$datum')";
liegt, aber wo?

Der Fehler entsteht bereits in der Zeile davor...da fehlt am Zeilende das Semikolon hinter der echo-Anweisung ;)
 
Dann musst du nur noch die Spaltennamen richtig schreiben und schon sollte es funktionieren.

Übrigens solltest du dich mal mit dem Thema der so genannten Register Globals auseinandersetzen.
 
Ok danke für eure Hilfe, jetzt funktioniert es. :)
Werde mir das mit den Register Globals mal ansehen, danke für den Tipp. ;)
 
Zurück