SELECT listTitle, listLength, listCmt, listDt, mBCFName, mBCLName, moAmt, moDtOff
FROM User U, Listing L, Merchant M, MerchantOffer MO
WHERE U.uID = L.uID
and L.listID = MO.listID
and M.mID = MO.mId
ORDER BY listDt DESC;
这个foreach()循环
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach($result as $row)
{
echo "<div class='listing'>";
print '<br>Title: ' . $row['listTitle'] . '<br>Comment: ' . $row['listCmt'] .
'<br>Date: ' . $row['listDt'] . '<br>Offer By: ' . $row['mBCFName']. ' ' .$row['mBCLName']. '<br> for: ' . $row['moAmt'];
echo "</div>";
}
产生:
基本上我想要的是:
Title: Apple iPhone 4S (listTitle)
Days: <some day amount <listLength>
Comment: some comment <listCmt>
Offer By: some user <mBCFName mBCLName>
Offer: 19.99 <moAmt>
Date: 10/03/2011 < moDtOff>
Offer By: some user <mBCFName mBCLName>
Offer: 19.99 <moAmt>
Date: 10/03/2011 < moDtOff>
Offer By: some user <mBCFName mBCLName>
Offer: 19.99 <moAmt>
Date: 10/03/2011 < moDtOff>
Offer By: some user <mBCFName mBCLName>
Offer: 19.99 <moAmt>
Date: 10/03/2011 < moDtOff>
最佳答案
在我看来,您想将listTitle
作为组标题打印在相关注释上方。
一种方法是跟踪上一行的listTitle
,然后仅在与当前行有所不同时才打印它。当然,您必须确保结果集按listTitle
排序。
另一种方法是让一个查询获取该组标题的所有数据,然后让另一个查询获取该组的内容。
在查询中也可能这样做,但是这很棘手,因为您希望具有该listTitle
的第一条记录具有listTitle
的值,而其他记录具有null
-直到下一个不一样。
关于php - 使用循环仅显示一次每个DISTINCT字段值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7668115/