MySQL& PHP循环扭曲

时间:2013-12-27 23:55:56

标签: php mysql loops foreach

我无法理解我需要如何解决这个问题。我有一个表(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

我不确定如何开始这个。有谁知道开始的好方向?

1 个答案:

答案 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