0

ユーザーが探しているデータを絞り込めるように、いくつかのドロップダウン ボックスを作成しました。ドロップダウン ボックスのうち 2 つは、ユーザーが年を選択する場所です。たとえば、最初のボックスは 1990 年で、2 番目のボックスは 2000 年である可能性があります。では、この時間間隔を適用できるクエリを設定するにはどうすればよいでしょうか。

$pYear1 = the first year they select in the drop down box 
$pYear2 = the second year they select in the drop down box 

select * from table where year = '$pYear1 - $pYear2';

これを試しましたが、うまくいきませんでした。誰でもこれで私を助けることができますか?

4

3 に答える 3

1

使ってみてBETWEEN

select * from table where year BETWEEN '$pYear1' AND '$pYear2';

アップデート:

@SylvainLeroux が示唆したように、パフォーマンスとセキュリティ上の理由から、pdo または mysqli を使用することを強くお勧めします。

PDO マニュアル

MySQLi マニュアル

于 2013-07-09T13:56:34.367 に答える
1

コメントで気付いたように、ユーザーが提供した値を SQL クエリに直接挿入しないでください。

PHP を使用しているため、推奨される方法はおそらく準備済みステートメントを使用することです。ここでは PDO を使用します (「年」が整数であると仮定します):

$sth = $dbh->prepare('* from table where year BETWEEN :start_year AND :end_year;');
$sth->bindParam(':start_year', $pYear1, PDO::PARAM_INT);
$sth->bindParam(':end_year', $pYear2, PDO::PARAM_INT);
$sth->execute();

これはほんの一例です。いくつかのバリエーションが用意されています。http://www.php.net/manual/en/pdostatement.execute.phpを参照してください。

于 2013-07-09T14:06:12.767 に答える
0

または、日付を除く範囲が必要な場合は、これを行うことができます。

select * from table where year > '$pYear1' and year < '$pYear2';
于 2013-07-09T14:09:03.403 に答える