我想制作一个从数据库中检索值的下拉列表。 这些值是用户输入日期的月份和年份。下拉列表示例:-
- --选择月份--
- 11-2013
- 12-2013
- 03-2015
- 02-2016
我已经完成查询以获得如上的结果:-
SELECT DISTINCT(DATE_FORMAT(DATE(date),'%m-%Y')) 作为日期
从表
ORDER BY DATE_FORMAT(DATE(date),'%Y'), DATE_FORMAT(DATE(date),'%m')
升序
但是,我对如何在下拉列表中选择月份后显示 tbl
中的所有其他列感到很困惑。例如,在 tbl
表中,date
列旁边有 description
和 personInCharge
列。当在下拉列表中选择月份时,它假设检索与所选月份相关的所有数据。
我试过使用这些:-
SELECT *, DISTINCT(DATE_FORMAT(DATE(date),'%m-%Y')) 作为日期
从表
ORDER BY DATE_FORMAT(DATE(date),'%Y'), DATE_FORMAT(DATE(date),'%m')
升序
和
SELECT description, personInCharge, DISTINCT(DATE_FORMAT(DATE(date),'%m-%Y')) 作为日期
从表
ORDER BY DATE_FORMAT(DATE(date),'%Y'), DATE_FORMAT(DATE(date),'%m')
升序
等等,但我得到的只是错误。我哪里错了?我该如何完成这个?是通过使用 join 子句吗?如果是,怎么办?
--更新--
我可以使用此查询列出详细信息:-
SELECT *, (DATE_FORMAT(DATE(date),'%m-%Y'))AS month FROM tbl
但是,我仍然不知道如何与下拉列表集成。
最佳答案
我只是在使用这两个查询。第一个查询是下拉列表。第二个查询是显示表中的值。
$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'");
如果我的代码有什么问题,请在这里讨论。
关于php - 下拉列表选择所有不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33663831/