私はこの問題を解決しようとしており、多くの解決策を見つけましたが、まだ作業に取り掛かることができません。私はコードに非常に不満を感じており、まとめてまとめて一度に機能させるのではなく、段階的に実行するだけだと思います。
現在、私のテーブルは次のとおりです。
categories | name
fashion | chanel
fashion | prada
cafes | starbucks
cafes | tcc
dining | kfc
dining | macdonalds
私が達成したいことは
1) Echo-ing out the categories <h1>fashion</h1> with once instead of duplicating and <ul> if it is starting on a new category
2) Echo-ing out all the <li>name</li> no matter how many of names are under that fashion
3) Echo-ing out </ul> if it is the last name in that fashion
残りのカテゴリについても同様です。これは現在、私の心が考えていることであり、これが実際的かどうかはわかりません。
私はこの方法を使ってみました:
$result = mysqli_query($con,"SELECT * FROM floor_directory WHERE level='$level' ORDER BY categories");
while($row = mysqli_fetch_array($result)){
if($previousVal != $row['categories']){
$data .= '<h1>'.$row['categories'].'</h1><ul class="shop_listing">';
$previousVal = $row['categories'];
}
$data .= '<li>
<p class="float_left">'.$row['name'].'</p>
</li></ul>';
}
私が知っているのは、li と終了 ul のループに何か問題があることです。これは私が非常に長い間立ち往生していて、どこにも解決策を見つけることができない場所です. 私が何をしても、さまざまなカテゴリに対して foreach を実行しても、そうでなければ、まだどこにも近づきません。
私が得る結果は次のいずれかです:
<h1>fashion</h1>
<ul class="shop_listing">
<li><p>chanel</p></li>
</ul>
<li><p>prada</p></li>
<h1>dining</h1>
<ul class="shop_listing">
<li><p>kfc</p></li>
</ul>
<li><p>macdonald</p></li>
または:
<h1>fashion</h1>
<ul class="shop_listing">
<li><p>chanel</p></li>
<li><p>prada</p></li>
<h1>dining</h1>
<ul class="shop_listing">
<li><p>kfc</p></li>
<li><p>macdonald</p></li>
</ul>
</ul>
皆さんが私を助けてくれることを願っています。リンクを貼ってコメントしただけの人は、ここに回答を入力しないでください。私はそれを必要としません。私はすでに非常に混乱しており、これについては初心者です。私のコードが機能しない理由と、与えられた解決策が機能する理由を誰かが案内したり、説明したりしてくれるとうれしいです。前もって感謝します!