date mit DB Eintrag abgleichen

mein Script sieht jetzt so aus:
PHP:
$date = date('Y-m-d');
$query = "
    UPDATE
            `user`

      SET
            `datum` = $date,
            `besuche` = `besuche`+1,
            'punkte' = 'punkte'+1

      WHERE
            `user` = '".mysql_escape_string($_REQUEST['name'])."',
        AND `date` < CURRENT_DATE
    ";
  mysql_query($query);
aber es passiert nichts....das Datum in der Tabelle bleibt bei 0000-00-00 stehen und wird nicht aktualisiert....was ist noch falsch am Code?
 
Heißt das Feld in der Datenbank nun date oder datum ?

Du verwendest im Query nämlich zwei verschiedene Bezeichnungen:
Code:
$query = " 
    UPDATE 
            `user` 

      SET 
            `datum` = $date, 
            `besuche` = `besuche`+1, 
            'punkte' = 'punkte'+1 

      WHERE 
            `user` = '".mysql_escape_string($_REQUEST['name'])."', 
        AND `date` < CURRENT_DATE 
    ";
 
die Spalte heißt datum..... ich hatte das untere 'date' übersehen.... das mit den Anführungszeichen hab ich von hier übernommen und abkopiert....sollte ich die besser wegmachen? Weil auch mit date in datum umgewandelt schreibt er mir das Datum nicht in die Tabelle, sondern dort bleibt 000-00-00 stehen....:(
 
Versuch mal folgende Abfrage:
PHP:
<?php
	[…]
	$query = "
		UPDATE
		        `user`

		  SET
		        `datum` = CURRENT_DATE,
		        `besuche` = `besuche` + 1,
		        `punkte` = `punkte` + 1

		  WHERE
		        `user` = '".mysql_escape_string($_REQUEST['name'])."',
		    AND `datum` < CURRENT_DATE
	";
	[…]
?>
 
dööt, der Code sieht jetzt so aus:
PHP:
$date = date('Y-m-d');
$query = "
        UPDATE
                `user`

          SET
                `datum` = $date,
                `besuche` = `besuche` + 1,
                `punkte` = `punkte` + 1

          WHERE
                `user` = '".mysql_escape_string($_REQUEST['name'])."',
            AND `datum` < $date
    ";

mysql_query($query);
aber es ändert sich trotzdem kein Datum in der Tabelle.....das bleibt immer bei 000-00-00.....
Was ich bei dem Code jetzt nicht versteh is, wie er funktioneirt....eigentlich soll er ja die Besuche und Punktezahl nur dann erhöhen, wenn das Datum ungleich dem aktuellen Datum ist.... macht er das hier denn? Entweder ich steh grad aufm Schlauch, oder irgfendwas is bei dem Code falsch.... fehlt da net irgendwo ein
if (datum-jetzt != datuminTabelle) { erhöhe besuche+punkte+aktualiesiere das Datum}
else { aktualisiere nur das Datum, lasse aber den Rest so wie er ist}
Funktioniert das Script denn so? Irgendwie blick ich des nämlich grade nicht mehr so wirklich
:rolleyes:
 
CURRENT_DATE ist eine MySQL-Funktion, welche das aktuelle Datum im 'YYYY-MM-DD'- oder YYYYMMDD-Format zurück, abhängig davon, ob die Funktion in einem Zeichenketten- oder in einem numerischen Zusammenhang benutzt wird.
Würdest du also bitte meinen Vorschlag so probieren, wie ich ihn beschrieben habe.
 
@ Gumbo: Hab ich schon...sorry, hab ich vergessen zu erwähnen:-(
Das geht auch mit dem CURRENT DATE nicht, ich hab dann halt mal ausgetauscht, weil ich gedacht habe, dass das nur meine MySQL-VErsion vielleicht nicht unterstützt....nee, da ändert sich aber trotzdem nichts dran...
 
Zurück