从和到目前为止在数据库PHP中搜索

时间:2015-01-27 15:19:25

标签: php mysql

美好的一天!我正在尝试创建一个"按日期搜索"我的网站中的选项将检索数据库中的日期与用户匹配的记录'输入。我有这些选择框:

<!-- FROM -->
<select name="from_month" id="from_month">
 <option selected>-- MONTH --</option>
 <option value="january">January</option>
 ...
 <option value="december">December</option>
</select>

<select name="from_day" id="from_day">
 <option selected>-- DAY --</option>
 <?php $i = 1;
  while ($i <= 31) {
  echo '<option value="'.$i.'">'.$i.'</option>';
  $i++;
  }
 ?>
</select>

<select name="from_year" id="from_year">
 <option selected>-- YEAR --</option>
 <?php $i = date('Y');
  while ($i <= 2040) {
  echo '<option value="'.$i.'">'.$i.'</option>';
  $i++;
  }
 ?>
</select>
<!-- FROM (END) -->

<!-- TO -->
<select name="to_month" id="to_month">
 <option selected>-- MONTH --</option>
 <option value="1">January</option>
 ...
 <option value="12">December</option>
</select>

<select name="to_day" id="to_day">
 <option selected>-- DAY --</option>
 <?php $i = 1;
  while ($i <= 31) {
  echo '<option value="'.$i.'">'.$i.'</option>';
  $i++;
  }
 ?>
</select>

<select name="to_year" id="to_year">
 <option selected>-- YEAR --</option>
 <?php $i = date('Y');
  while ($i <= 2040) {
  echo '<option value="'.$i.'">'.$i.'</option>';
  $i++;
  }
 ?>
</select>
<!-- TO (END) -->

我原本打算做的是从_&#34;中获取所有&#34;将值存储到变量&#39; $来自&#39;。 &#34;到_&#34;也是如此。因为我的日期数据库如下所示:

id | title(text) | date_submitted(date) |
 1 | Lorem Ipsum |     2015-01-20       |

如何实现这一点,我们将不胜感激。提前谢谢!

1 个答案:

答案 0 :(得分:1)

既然您知道日期的每一部分,MySQL的BETWEEN就可以解决问题:

SELECT * FROM db WHERE mydate BETWEEN 'from_date' AND 'to_date'

from_date to_date 是您的变量,请浏览表单。

正如@AnoopS所述,使用数字来评估您的月份框。

请记住使用预先准备好的语句,使用 mysqli PDO 进行注射。