繁体   English   中英

使用MySQL和PHP显示和分组数据

[英]Using MySQL and PHP to display and group data

我有一个要显示在页面上的更新列表,但我想列出它们并按每天的更新分组。

所以例子我希望他们看起来像

<tr>
   <td colspan=3>April 07 2016</td>
</tr>
<tr>
   <td>Update4</td>
   <td>Category</td>
   <td>Added By</td>
</tr>
<tr>
   <td>Update3</td>
   <td>Category</td>
   <td>Added By</td>
</tr>
<tr>
   <td>Update2</td>
   <td>Category</td>
   <td>Added By</td>
</tr>
<tr>
   <td colspan=3>March 29 2016</td>
</tr>
<tr>
   <td>Update1</td>
   <td>Category</td>
   <td>Added By</td>
</tr>

所以说我在该日期添加3个更新,则该更新显示在该日期下;如果我在2天之后添加2个更新,则该更新显示在该日期下。

我在网上看到了一些片段,我发现GROUP BY可以工作。

SELECT `title`, `addedby`, `description`, `date_added`
FROM updates WHERE `status`=1 GROUP BY MONTH(date_added)

你尝试过这个吗?

$query=SELECT `title`, `addedby`, `description`, `date_added`
FROM updates WHERE `status`=1 GROUP BY date(date_added)

如果要显示,则需要此

$result = $conn->query($sql)  
 if ($result->num_rows > 0) {
 while($row= $result->fetch_assoc())
{
 $title=$row['title'];
 $aded=$row['addedby'];
}

然后将这些变量放在要打印值的位置

分组依据是用于汇总功能,例如。

select month(date_added), count(*) 
from updates 
WHERE `status`=1 GROUP BY MONTH(date_added);

not for conditional query like you want 

在这种情况下,您应该为您的date_added值循环(以下代码仅是建议)

foreach ($Array_date_vales as $key => $value) {   

 "SELECT `title`, `addedby`, `description`, `date_added`
 where WHERE `status`=1 and MONTH(date_added) =  " . $value

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM