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

上記のクエリには何が問題なのですか?条件を確認せずに「過去」を1に設定しました。このコードを改善するにはどうすればよいですか?PHPの日付検証と比較

+0

$行[ 'valid_date']は何ですか? 。列名または値?列名は –

+0

で、現在の日付と比較したいテーブル 'products'の配列変数である必要があります。 – SUNIL

+0

ええ、それは列名 – SUNIL

答えて

0

情報が不十分です。どのような種類のデータが$ row ['valid_date']を格納していますか?タイムスタンプ?

とにかく、何を得たいのか分からないが、通常は値が> CURDATE()より大きい場合は、過去の= 0になります。

その後、正しい方法は次のようになります。

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

私が意味する、日付が、それがそうでなければ、過去になりますので、従来より0 =過去だろう、将来的には現在の1以上のものですされている場合、過去= 1

しかし、規約と同じように、別のものを使用している可能性があります。

つ以上の非常に重要なオフトピックノート:これを試してみてくださいするmysql_query()は、これはあなたの問題を解決します

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

希望、

+0

これは答えではありません、これはコメントであり、1つとして書かれるべきです。 –

+0

あなたが正しいかもしれません、私の仮説的な答え(情報の不足のため)は、あなたはそれを逆にしています。 (ちょうど答えとして追加しました) –

0

PHP 7で削除されました。

+0

いいえ動作していません – SUNIL

+0

PHPで表示エラーを表示してチェックします。 –

+1

@SUNIL - _ "動作していません" _の任意の拡張? –

0

私は、これはIFFの$行[ 'valid_date']を動作するはずと仮定

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

、これを試しては、あなたのテーブル内の列の名前です。

一度も表示されない場合は、クエリをエコーし​​てから、mysqlブラウザで実行してみてください。

0

あなたの列には、コードの下に、日付時刻または日付である場合は、あなたを助けるかもしれない

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