我正在为广告创建一个网站。我希望有一个像这样的列表
2011年10月22日星期六(标题)
产品名称1-city - 100 $
产品名称2-city - 74 $
产品名称3-city - 500 $
2011年10月23日星期日(标题)
产品名称4-city - 150 $
产品名称5-city - 220 $
产品名称6-city - 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>";
}
答案 0 :(得分:2)
while
循环中检查上次使用的时间戳的日期格式是否与当前行不同,如果是,则根据当前行时间戳打印标题,将其分配给上次使用的时间戳,然后打印其余时间。答案 1 :(得分:1)
假设timeStamp是一个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)