DATUM aus Datenbank abfragen Wenn datum erreicht soll andere Spalte aktualisiert werd

wie mache ich das?

PHP:
Betroffene Datensätze:  0 (die Abfrage dauerte 0.0008 sek)  
SQL-Befehl: 
UPDATE `User` SET VIP_ende = NULL ,
VIP_anfang = NULL ,
VIP = '0' WHERE -- mit DATE() sicherstellen dass die Uhrzeit keine Rolle spielt
DATE( SYSDATE( ) ) = DATE( VIP_ende ) AND ID =2

so sieht es in mysql aus.

Und es passiert nichts. Ich habe nur die Variable rausgenommen und einer festen ID zugewissen da nur in dieser ID als test ein eintrag ist.

Alle anderen ID´s sind auf null darum

so habe festgestellt, das wenn ich diese UPDATE FUNKTION direkt in MYsql machen wird sie ausgeführt.
Wenn ich es aber über eine php datei mache wird es nicht ausgeführt wieso das?
 
Du hast das Tutorial bnicht gelesen. Darin steht wie du dir den String der an die DB geschickt wird ermitteln kannst. Und mit diesem solltet du testen, nicht mir einem von dir gestrickten.

Ich geh davon aus, dass $id nicht abgefüllt ist.
 
selbst wenn ich die Variable raus nehme passiert nichts nur über MYSQl direkt wenn ich der $id einen wert zuweise passiert ebefalls nichts. Nur immer über mysql direkt.

so ersten habe ich dies

UPDATE User SET Wohnort = test WHERE id = 2; Unknown column 'test' in 'field list'.

komisch ist das die UPdatefunktion in mysql direkt ****t aber über diese Php datei dann nicht
 
Unknown column 'test' in 'field list'.
Test ist ein String und gehört in '
Ansonsten sucht MySQL ein Feld mit dem Namen.
SQL:
UPDATE `user` SET wohnort = 'test' WHERE id = 2

Interessant aber ist, dass das ausgegebene Query so nix mit dem Query mit dem VIP-Zeugs drin zu tun hat das wir die ganze Zeit analysieren. Hast du da also noch weitere Queries die du gegen die DB feuerst?
 
Zuletzt bearbeitet von einem Moderator:
komisch jetzt geht es. Habe nur

PHP:
session_start();
$id = $_SESSION['UserID'];
     error_reporting(E_ALL);
    include("mysql.php");

$sql = "UPDATE User SET VIP = '0',
VIP_anfang = 'NULL',
VIP_ende = 'NULL' WHERE -- mit DATE() sicherstellen dass die Uhrzeit keine Rolle spielt
DATE( VIP_anfang ) = DATE( VIP_ende ) AND ID = $id "; 
mysql_query($sql) or die(mysql_error());
echo mysql_affected_rows();
alles in ' gesetzt
 
Das ist aber nicht dein Ernst?

VIP_anfang = 'NULL' ? Was soll das werden?
Sorry, aber davon kann ich dir nur abraten.

Wende mal das Debuggen auf deinen Code an. Du postest hier nicht das was du hast!

so ersten habe ich dies

UPDATE User SET Wohnort = test WHERE id = 2; Unknown column 'test' in 'field list'.
stammt sicher nicht von diesem Code
PHP:
 <?
session_start();
$id = $_SESSION['UserID'];
     error_reporting(E_ALL);
    include("mysql.php");

$sql="UPDATE `User`
SET 
    VIP_ende = NULL, 
    VIP_anfang = NULL, 
    VIP = '0'
WHERE
    -- mit DATE() sicherstellen dass die Uhrzeit keine Rolle spielt
    DATE(SYSDATE()) = DATE(VIP_ende)
    AND ID = $id ";
?>


Ich meine, du kannst es so lassen. Die Probleme werden später aber zurückschlagen

Tssss Einen String in ein Date-Feld schreiben. Das ist als ob man ein Auto mit Fahrradrädern bestücken würde...
 
Zurück