0

我知道这个问题的回答与上一个问题类似。我已经尝试了解决方案,但似乎无论我尝试了哪种方式,我仍然无法让它发挥作用。我不确定我的编码结构是否有问题。

目前它显示结果为:

Cafes (Category)
Starbucks

Cafes (Category)
CoffeeBean

但我希望它显示:

Cafes (Category)
Starbucks
CoffeeBean

下面是我的代码:

<?php
    $levelArray=array('L1','B1','L2','B2');
        foreach ($levelArray as $i=>$level) {
             $data='';
            $img = "img/".$levelArray[$i];
           $result = mysqli_query($con,"SELECT * FROM floor_directory WHERE level='$levelArray[$i]'");
           while($row = mysqli_fetch_array($result)){
            $data .= '<h1>'.$row['categories'].'</h1>
                        <ul class="shop_listing clearfix">
                            <li class="float_left">'.$row['name'].'</li>
                            <li class="float_right">'.$row['unit_number'].'</li>
                        </ul>';
        }
        echo '<div class="swiper-slide">
            <img src="'.$img.'" alt="" />
                <div class="content_container">'.$data.'</div>
          </div>'

        }

     ?>

任何帮助将不胜感激。提前致谢。

4

2 回答 2

1
$previousVal = "";
while($row = mysqli_fetch_array($result)){
if($previousVal != $row['categories']){
     $data .= '<h1>'.$row['categories'].'</h1>
     $previousVal = $row['categories'];
}
     $data .= '<ul class="shop_listing clearfix">
               <li class="float_left">'.$row['name'].'</li>
               <li class="float_right">'.$row['unit_number'].'</li>
               </ul>';
}

试试这个。

于 2013-10-30T09:59:47.690 回答
0

好吧,每次你呼应商店的名称时,也会呼应类别,因为你同时打印了$row['categories']$row['name']

要解决此问题,您可能必须将其分开,可能通过添加 Jon 提到的处理步骤,将同一类别中的所有商店组合在一起,并且仅将类别呼应一次。

$allCategories = array(); $data='';

while($row = mysqli_fetch_array($result)){
    if(!array_search($row['categories'],$allCategories)){
        array_push($allCategories,$row['categories']);
        $data .= "<h1>{$row['categories']}</h1>";
    }
    $data.= '<ul class="shop_listing clearfix">
                 <li class="float_left">'.$row['name'].'</li>
                 <li class="float_right">'.$row['unit_number'].'</li>
             </ul>';

        }
于 2013-10-30T09:56:05.407 回答