这是我的MySQL表:
p_id product_name description added_date
-----------------------------------------------------------------------
1 headphone headphone 2012-06-23 10:20:11
2 cdplayer cdplayer 2012-06-23 12:03:51
3 computerbag computerbag 2012-06-23 04:10:38
4 lcd lcd 2012-06-23 08:40:15
5 monitor monitor 2012-06-10 05:11:55
6 mouse mouse 2012-06-10 09:12:45
7 lasermouse lasermouse 2012-06-10 11:54:12
8 keyboard keyboard 2012-05-28 07:18:21
9 camera camera 2012-05-28 10:20:11
10 charger charger 2012-05-28 10:55:33
我希望我的结果看起来像:
23 Jun
10月10日
5月28日
答案 0 :(得分:0)
首先,您需要使用类似的mysql语句检索所有表值。为结果分配变量名称。
SELECT * FROM table
因此,如果我们说$results
是包含所有表值等的变量,那么
然后使用PHP。您可以遍历所有结果
foreach($results as $result)
{
$date = date('d F', strtotime($result['added_date']));
$products[$date][] = $result['product_name'];
}
现在我们已经按日期分组了所有产品名称,我们需要再循环一次。
foreach($products as $key=>$product)
{
echo $key;
echo '<ul>';
foreach($product as $productName)
{
echo '<li>' . $productName . '</li>';
}
echo '</ul>';
}
这是我给你提供的最佳答案,如果你做出改变,那么我一定会改进这个。但这是需要做的基本原则。
答案 1 :(得分:0)
这不完全是您想要的格式。您必须更改格式,例如使用<ul>
和<li>
标记。
<?php
$con = mysqli_connect... //Database connection
$result = mysqli_query($con, "SELECT product_name,DATE(added_date) AS only_date FROM YOURTABLENAME ORDER BY DATE(added_date) DESC,p_id ASC");
$currentDate = "";
while($data = mysqli_fetch_object($result)) {
if($currentDate != $data->only_date) {
echo $data->only_date."<br>"; //You have to format this, now it's YYYY-MM-DD
$currentDate = $data->only_date;
}
echo $data->product_name."<br>";
}
?>
答案 2 :(得分:-2)
$result = mysql_query("SELECT * FROM `test` group by `added_date` order by p_id");
$current_date="";
$i=0;
while ($row = mysql_fetch_array($result))
{
$row_date=explode(" ",$row['added_date']);
if($current_date!=$row_date[0])
{
if($i!=0){echo"</ul>".date("jS F", strtotime("$row_date[0]"))."<ul>";}
//$new_date=explode(" ",$row['added_date']);
$current_date=$row_date[0];
if($i==0)
{
$i++;
echo "<ul>".date("jS F", strtotime("$row_date[0]"));
}
echo "<li>".$row['product_name']."</li>";
}
else
{
echo "<li>".$row['product_name']."</li>";
}
}