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 が述べたように、すべてのショップを同じカテゴリにグループ化し、カテゴリを 1 回だけエコーする処理ステップを追加する必要があります。

$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 に答える