2017-02-02 6 views
-1
$datesql='UPDATE products set past=1 where " '.$row['valid_date'].' " > CURDATE()'; 
mysql_query($datesql); 

Was ist los mit der obigen Abfrage? Es hat die "Vergangenheit" auf 1 gesetzt, ohne den Zustand zu überprüfen. Wie kann ich diesen Code verbessern?PHP Datum Validierung und Vergleich

+0

helfen, was $ row [ 'valid_date']? . Spaltenname oder -wert ?. Es sollte der Spaltenname –

+0

eine Array-Variable aus der Tabelle 'Produkte' sein, mit der ich das aktuelle Datum vergleichen möchte. – SUNIL

+0

Ja, es ist ein Spaltenname – SUNIL

Antwort

0

Nicht genügend Informationen. Welche Art von Daten speichert $ row ['valid_date']? Zeitstempel?

Wie auch immer, nicht sicher, was Sie erhalten möchten, aber normalerweise, wenn der Wert> CURDATE() ist, wäre es Vergangenheit = 0.

Dann ist der richtige Weg wäre:

'UPDATE products set past=1 where " '.$row['valid_date'].' " < CURDATE()'; 

Ich meine, wenn das Datum als aktuelle mehr ist, ist es in der Zukunft würde so konventionell Vergangenheit = 0, sonst in der Vergangenheit sein würde , so alt = 1

Aber, wie Konventionen sind, können Sie einen anderen verwenden.

Ein weiteres sehr wichtiges Thema aus Anmerkung: mysql_query() wurde in PHP 7

entfernt
+0

Dies ist keine Antwort, dies ist ein Kommentar und sollte als eins geschrieben werden. –

+0

Vielleicht haben Sie Recht, meine hypothetische Antwort (wegen fehlender Informationen) ist: Sie tun es andersherum. (nur als Antwort hinzugefügt) –

0

Try this,

$var1=$row["valid_date"]; 
$datesql="UPDATE `products` set `past`=1 where $var1 > CURDATE()";   
$res=mysql_query($datesql); 

Hoffnung dies Ihr Problem lösen wird.

+0

Nein.Es funktioniert nicht – SUNIL

+0

Fehler in php einschalten und überprüfen –

+1

@SUNIL - Jede Erweiterung auf _ "funktioniert nicht" _? –

0

die Sie interessieren,

$datesql="UPDATE products set past=1 where ".$row['valid_date']." > CURDATE()"; 
mysql_query($datesql); 

Ich nehme an, das genau dann, wenn $ row funktionieren sollte [ 'valid_date'] ist der Name der Spalte in der Tabelle.

Wenn nicht einmal, echo Ihre Abfrage und dann versuchen, auf Ihrem MySQL-Browser auszuführen.

0

Wenn Ihre Spalte Date oder das Datum, unter Code Sie können

$datesql='UPDATE products set past=1 where '.$row['valid_date'].' > CURDATE()';