1

MONTH と TEXT の 2 つの列を持つデータベースがあります。

現在の月を超える月のエントリではなく、すべてのエントリを表示するにはどうすればよいですか? (たとえば、3 月、8 月、12 月にテキストがあり、8 月にある場合、3 月と 8 月のテキストのみを表示したい。)

<?php

// select all data at once

$construct ="SELECT * from table WHERE MONTH(DataIntroducere) = ???";
rest of code

?>

来月のテキストを入力し、表示したくないので、これが欲しいです。

4

3 に答える 3

1

のようにしてみてください

$construct ="SELECT * FROM table WHERE MONTH(DataIntroducere) <= ".date('m');

またはmysqlで次のように試すことができます

$construct ="SELECT * from table WHERE MONTH(DataIntroducere) <= MONTH(CURDATE())";

また、プレフィックス で名前が付けられたすべての関数を提供する拡張機能全体が現時点で公式に非推奨であり、将来的に削除されるためmysql_*、ステートメントを避けるようにしてください。ext/mysql PHPmysql_*PHP v5.5.0

より適切に使用できる他の 2 つのMySQL拡張機能があります:MySQLiPDO_MySQLで、どちらも の代わりに使用できますext/mysql

于 2013-08-31T09:18:16.270 に答える
0

これを行う最も賢明な方法は、日付を UNIX タイムスタンプとして保存することです。 http://www.unixtimestamp.com/index.php

ほとんどのプログラミング言語には、UNIX タイムスタンプを返すメソッドが用意されています。次に、現在の月をタイムスタンプに変換して、次のようなクエリを実行できます

SELECT * FROM table WHERE month < timestamp_of_current_month
于 2013-08-31T09:18:29.193 に答える
0
$construct = "SELECT * FROM table WHERE DATE(DataIntroducere) <= DATE(NOW());

これが(正しい)ものです。そして、YEAR()、MONTH()、CURDATE() などを気にする必要はありません。

于 2013-08-31T09:22:47.820 に答える