希望 while 循环仅在表中显示数据库中的存储列表


Wanting a while loop to only display a list of stores from the database in a table

我正在用php创建一个报告。 我有一个数据库,其中包含 20 多家商店的订单数据。 我想创建一个表来显示商店,然后在商店编号之后的后续行中列出数据。 我正在尝试通过 while 循环来做到这一点。 唯一的问题是,每个商店有多个条目。我只希望报告列出一次商店。目前,它循环并列出所有商店,遍历并再次列出它们。 我知道必须有一种方法让它只提取一次商店号码的数据。 有没有更好的解决方案而不是 while 循环?

    if ($store_number == '[All_Stores]'){
    $store_query = mysql_query('SELECT * FROM `Orders` WHERE `StoreNumber` <> "0"');
    while($store_row = mysql_fetch_array($store_query)){
        #$store_number = $store_row['StoreNumber'];
        echo    "<tr>";
        echo    "<td align='"center'"><strong>" . $store_row['StoreNumber'] . "</strong></td>";
and a bunch more data afterwards

产生与此类似的结果,只是重复多次。

https://i.stack.imgur.com/8c8eY.png

首先,我会按商店编号排序(如果它在那里并且更有意义,也许是商店名称)。然后,在循环浏览列表时,当我跑到一家新商店时,我会打印它。我只会在找到新店时打印。

$current_store = null;
while(...) {
     if($current_store != $store_row['StoreNumber']) {
         //print Store
         $current_store = $store_row['StoreNumber'];
     }
}

那种事情。

尝试:

if ($store_number == '[All_Stores]'){
        $store_query = mysql_query('SELECT * 
              FROM `Orders` 
              WHERE `StoreNumber` <> "0"
              ORDER BY StoreNumber');
      $old_Nbr = "";
      while($store_row = mysql_fetch_array($store_query)){
        if ( $store_row['StoreNumber'] == $old_Nbr ) {
          $store_number = ""
        } else {
          $store_number = $store_row['StoreNumber'];
          $old_Nbr = $store_number;
        }
        echo    "<tr>";
        echo    "<td align='"center'"><strong>" . $store_number . "</strong></td>";
    and a bunch more data afterwards