下拉列表选择所有不同的

时间:2015-11-12 03:18:16

标签: php html mysql date drop-down-menu

我想创建一个从数据库中检索值的下拉列表。 值是用户输入日期的月份和年份。下拉列表示例: -

  • - 选择月 -
  • 11-2013
  • 12-2013
  • 03-2015
  • 02-2016

我已完成查询以获得上述结果: -

SELECT DISTINCT(DATE_FORMAT(DATE(date),'%m-%Y')) AS date FROM tbl ORDER BY DATE_FORMAT(DATE(date),'%Y'), DATE_FORMAT(DATE(date),'%m') ASC

但是,在下拉列表中选择月份之后,我对如何在tbl中显示所有其他列感到困惑。比如,在表tbl中,description列旁边有personInChargedate列。在下拉列表中选择月份时,它会假设检索与所选月份相关的所有数据。

我尝试过使用这些: -

SELECT *, DISTINCT(DATE_FORMAT(DATE(date),'%m-%Y')) AS date FROM tbl ORDER BY DATE_FORMAT(DATE(date),'%Y'), DATE_FORMAT(DATE(date),'%m') ASC

SELECT description, personInCharge, DISTINCT(DATE_FORMAT(DATE(date),'%m-%Y')) AS date FROM tbl ORDER BY DATE_FORMAT(DATE(date),'%Y'), DATE_FORMAT(DATE(date),'%m') ASC

等等,但我得到的只是错误。我哪里错了?我怎么做到这一点?是通过使用join子句吗?如果是这样,怎么样?

- UPDATE -

我可以使用此查询列出详细信息: -

SELECT *, (DATE_FORMAT(DATE(date),'%m-%Y'))AS month FROM tbl

但是,我仍然不知道如何与下拉列表集成。

1 个答案:

答案 0 :(得分:0)

我只是使用这两个查询。第一个查询是针对下拉列表的。第二个查询是显示表中的值。

$sql = mysql_query("SELECT DISTINCT(DATE_FORMAT(DATE(date),'%m-%Y'))
                    AS month
                    FROM tbl
                    ORDER BY DATE_FORMAT(DATE(date),'%Y'), DATE_FORMAT(DATE(date),'%m')
                    ASC");

$query = mysql_query("SELECT *, (DATE_FORMAT(DATE(date),'%m-%Y')) AS month
                                 FROM tbl
                                 WHERE DATE_FORMAT(DATE(date),'%m-%Y')='$date'");

如果我的代码有问题,请在这里讨论。