Php 在日期控件中按日期筛选
这是我在此列表框中的查询值应按月分组…如果使用此查询意味着它仅显示2条记录…但我在db中有535个值…请帮助我尝试重写查询并查看结果:Php 在日期控件中按日期筛选,php,mysql,mysqli,phpmyadmin,Php,Mysql,Mysqli,Phpmyadmin,这是我在此列表框中的查询值应按月分组…如果使用此查询意味着它仅显示2条记录…但我在db中有535个值…请帮助我尝试重写查询并查看结果: $filter .="<option value='ALL' selected=selected> All Months - [" . $allcnt . "] </option>"; $query = "select LockerInfo_IDNo, ExpiryDate, count(LockerInfo_IDNo) count
$filter .="<option value='ALL' selected=selected> All Months - [" . $allcnt . "] </option>";
$query = "select LockerInfo_IDNo, ExpiryDate, count(LockerInfo_IDNo) count1 from lockerinfo
WHERE ExpiryDate<>''
group by MONTH(ExpiryDate)
order by ExpiryDate ";
$result = mysql_query($query) or die('101. Query failed: ' . mysql_error());
while ($row=mysql_fetch_array($result)){
if($mnt==date("d-m-Y",$row['ExpiryDate']))
$filter .="<option value='" . $row['ExpiryDate'] . "' selected=selected> " . $space1 . date("M",$row['ExpiryDate']) . " - [" . $row['count1'] . "]</option>";
else
$filter .="<option value='" . $row['ExpiryDate'] . "'> " . $space1 . date("M",$row['ExpiryDate']) . " - [" . $row['count1'] . "]</option>";
}
$filter .=" </select>";
echo $filter;
PHP脚本,例如:
select YEAR(ExpiryDate) as expireYear, MONTH(ExpiryDate) as expireMonth, count(LockerInfo_IDNo) count1
from lockerinfo
WHERE ExpiryDate<>''
group by YEAR(ExpiryDate) , MONTH(ExpiryDate)
order by 1, 2
你到底想做什么?我想每年只显示一个月一次?“bt am有535个db值”-有多少个不同的月值?听起来你真的不知道GROUP BY做了什么…你确定你的数据库中有任何与2个月以上相关的记录吗?我建议重写此代码,因为它有几个问题:1。使用了不推荐使用的数据库API。2.混合了三层表示逻辑、数据访问逻辑和业务逻辑。3.HTML内联在php代码中,可以对PITA进行图形化更改。我想在d字段中的tat列表框中显示每个月……例如,2013年1月有29个条目,可能有20个条目,它应该只在该列表框中显示一次。您应该在数据库行中输入数据,如:“2013”、“01”、“12”、“2013”、“05”、“20、,正确吗?谢谢你…这是组的d个错误,来自\u unixtimeExpiryDate,'%Y%m'
$resultSet = [];
/* uncomment to use real data
while ($row=mysql_fetch_array($result))
$resultSet[] = $row;
*/
// Example data start
$resultSet[] = ['expireYear' => '2013', 'expireMonth' => '01', 'count1' => 12];
$resultSet[] = ['expireYear' => '2013', 'expireMonth' => '05', 'count1' => 20];
$resultSet[] = ['expireYear' => '2013', 'expireMonth' => '11', 'count1' => 30];
// Example data end
$currentMonth = date('Ym');
$space1 = " ";
foreach ($resultSet as $row ){
$ym = $row['expireYear'].$row['expireMonth'];
$text = date("Y M", mktime(0, 0, 0, $row['expireMonth'], 1, $row['expireYear'])) . " - [".$row['count1']."]";
$filter .= "<option value='{$ym}' ".($currentMonth == $ym ? 'selected' : '')."> " . $space1 . $text . "</option>";
}
echo "<select>".$filter."</select>";