$datesql='UPDATE products set past=1 where " '.$row['valid_date'].' " > CURDATE()';
mysql_query($datesql);
上記のクエリには何が問題なのですか?条件を確認せずに「過去」を1に設定しました。このコードを改善するにはどうすればよいですか?PHPの日付検証と比較
$datesql='UPDATE products set past=1 where " '.$row['valid_date'].' " > CURDATE()';
mysql_query($datesql);
上記のクエリには何が問題なのですか?条件を確認せずに「過去」を1に設定しました。このコードを改善するにはどうすればよいですか?PHPの日付検証と比較
情報が不十分です。どのような種類のデータが$ 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);
希望、
これは答えではありません、これはコメントであり、1つとして書かれるべきです。 –
あなたが正しいかもしれません、私の仮説的な答え(情報の不足のため)は、あなたはそれを逆にしています。 (ちょうど答えとして追加しました) –
PHP 7で削除されました。
私は、これはIFFの$行[ 'valid_date']を動作するはずと仮定
$datesql="UPDATE products set past=1 where ".$row['valid_date']." > CURDATE()";
mysql_query($datesql);
、これを試しては、あなたのテーブル内の列の名前です。
一度も表示されない場合は、クエリをエコーしてから、mysqlブラウザで実行してみてください。
あなたの列には、コードの下に、日付時刻または日付である場合は、あなたを助けるかもしれない
$datesql='UPDATE products set past=1 where '.$row['valid_date'].' > CURDATE()';
$行[ 'valid_date']は何ですか? 。列名または値?列名は –
で、現在の日付と比較したいテーブル 'products'の配列変数である必要があります。 – SUNIL
ええ、それは列名 – SUNIL