2011-10-23 101 views
0

我创建广告的网站。我想有这样的按日期排序/分组数据(日)?

周六10/22/2011(头)

产品名称1 - 城市名单 - $ 100

产品名称2 - 城市 - $ 74

产品名称3-城市 - $ 500

周日10/23/2011(头)

产品名称4个城市 - $ 150

产品名称5城市 - $ 220

产品名称6-城市 - $ 10

我的代码是完全排序列表从最新到最旧的,但我想添加一些东西到while循环来打印出标题(粗体)(2011年10月22日星期六)。 基本上我想组的名单,他们被贴在 一天名下这里是我的代码:

$sql = "SELECT post_id,city, title, price, imgurl FROM md_post WHERE category='$cat' AND city='$city' ORDER BY timeStamp desc"; 

$result = mysql_query($sql); 

while($row = mysql_fetch_array($result)) 
    { 
echo "<a href='adid.php?id=".$row['post_id']."'>". $row['title']. " - ". $row['price']." - ".$row['city']."</a>"; 
} 

回答

1

假设时间戳Unix时间戳:

$sql = "SELECT post_id, city, title, price, imgurl, timeStamp FROM md_post WHERE category='$cat' AND city='$city' ORDER BY timeStamp desc"; 

$result = mysql_query($sql); 

while($row = mysql_fetch_array($result)) 
{ 
    if (!isset($dateold) || $dateold != date('d',$row['timeStamp']) { 
     echo '<strong>'.date('l m/d/Y',$row['timeStamp']).</strong><br />; 
    } 
    echo "<a href='adid.php?id=".$row['post_id']."'>". $row['title']. " - ".$row['price']." - ".$row['city']."</a>"; 
    $dateold = date('d',$row['timeStamp']); 
} 

时,它不是一个UNIX时间戳,但有效的时间,你可以改变的timeStamp的首次亮相UNIX_TIMESTAMP(timeStamp)

+0

非常感谢。那很快。这样做吧:) –

+0

这将工作仅在每一行都有不同的日期也不会下一个头球当天组条目......此外,还有少了一些'''这样的代码将与语法错误和失败的通知关于未定义的常量 –

+0

我不能upvote。我当然会以这种方式感谢你^ _ ^。它告诉我它需要15点声望。我在这里是新的 –

2
  1. 添加时间戳到您选择字段
  2. 引入新的变量保存上次使用时间戳
  3. while环路检查如果日期形式上次使用的时间戳从当前行不同,如果是的话基于当前行时间戳打印头,将其指定为上次使用时间戳,然后打印其余部分。
+0

我感谢你的帮助:)我按照这些步骤得到它 –