我无法理解我需要如何解决这个问题。我有一个表(tbl_accolade),其中有几列,它们是rep_name,accolade_text和customer_name。我想在一个页面上循环它们,但是采用特殊格式。有时每个代表都有多个荣誉。我希望它们循环在一起,如果我按顺序排序它们并不难,但是我想要一个带有代表名称的标题,但我不想让它重复,例如:
Jonny B Rep
Customer Accolade 1
Customer Name 1
Customer Accolade 2
Customer Name 2
Customer Accolade 3
Customer Name 3
Victoria S Rep
Customer Accolade 4
Customer Name 4
我不确定如何开始这个。有谁知道开始的好方向?
答案 0 :(得分:1)
正确方向上的一点。
您似乎只想按字母顺序按rep_name
排序,因此请使用ORDER BY rep_name ASC
,如下所示:
SELECT rep_name, customer_name FROM tbl_accolade
ORDER BY rep_name ASC
然后在你的PHP中,在循环结果时,有这样的东西:
$last_rep = "";
while($row = $sth->fetch()) {
if ($last_rep != $row['rep_name']) {
echo '<p><strong>- '.$row['rep_name'].'</strong></p>';
$last_rep = $row['rep_name'];
}
echo '<p>Customer: '.$row['customer_name'].'</p>';
}
预期结果:
- Adam Smith
Customer: Pete Jones
Customer: David Watson
- Barry Jenkins
Customer: Harry Hill
Customer: Julie Dawes
- Caroline Beal
Customer: Pete Jones
Customer: David Watson
- Carl Dickson
Customer: Sally Bean
Customer: Tom Daley
您甚至可以添加另一个ORDER BY
条件来对每个代表下的客户订单进行排序。
SELECT rep_name, customer_name FROM tbl_accolade
ORDER BY rep_name ASC, customer_name ASC