Php 在带有html标记的while循环中使用多个数据显示一次类别
我一直在努力解决这个问题,并找到了很多解决方案,但仍然无法开始工作。我对这些代码感到非常失望,我想我会一步一步地去做,而不是把它们一股脑地放在一起,然后马上让它们工作 现在我的桌子是:Php 在带有html标记的while循环中使用多个数据显示一次类别,php,mysqli,Php,Mysqli,我一直在努力解决这个问题,并找到了很多解决方案,但仍然无法开始工作。我对这些代码感到非常失望,我想我会一步一步地去做,而不是把它们一股脑地放在一起,然后马上让它们工作 现在我的桌子是: categories | name fashion | chanel fashion | prada cafes | starbucks cafes | tcc dining | kfc dining | macdonalds 我想要达到的是 1) Echo-in
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
1)以一次而不是重复的方式呼应类别,如果是从新类别开始,则呼应
2) 呼应出所有的- 名字
,不管有多少名字是这样的
3) 如果它是以这种方式显示的姓氏,则回显
其余的类别也是如此。这就是我目前的想法,我不知道这是否可行
我试过这样做:
$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>';
}
$result=mysqli_query($con,“从楼层目录中选择*,其中级别='$level'按类别排序”);
while($row=mysqli\u fetch\u数组($result)){
if($previousVal!=$row['categories'])){
$data.=''.$row['categories'.'.;
$previousVal=$row['categories'];
}
$data.='-
。$row['name']
';
}
我知道在li和ul的循环中有问题。这就是我被困很长时间的地方,在任何地方都找不到任何解决办法。无论我做什么,对于不同的类别,如果不是这样,我仍然无法接近
我得到的结果是:
<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>
时尚
- 香奈儿
普拉达
吃饭
- 肯德基
麦克唐纳
或:
时尚
- 香奈儿
- 普拉达
吃饭
- 肯德基
- 麦克唐纳
希望你们能帮帮我。对于那些刚刚添加链接并发表评论的读者,请阅读更多相关内容,不要在此处输入答案。我不需要,我已经很困惑了,我只是一个初学者。如果有人愿意指导我,甚至向我解释为什么我的代码不起作用,为什么给出的解决方案会起作用,我会很高兴。提前谢谢 一种方法是使用
类别
作为键创建一个新数组,并将属于该类别的所有名称放入该类别的数组中。循环新数组并创建HTML
PHP
$temp_array=array()//临时阵列
$result=mysqli_query($con,“从楼层目录中选择*,其中级别='$level'按类别排序”);
while($row=mysqli\u fetch\u数组($result)){
$temp_数组[$row['categories']][=$row['name'];//将数据放入临时数组
}
foreach($temp_数组作为$category=>$names){
$data.=''.$category.';
foreach($name作为$name){
$data.='-
。$name
';
}
$data.='';
}
未测试,但它应该满足您的需要。一种方法是使用您的
类别作为键创建一个新数组,并将属于该类别的所有名称放入该类别的数组中。循环新数组并创建HTML
PHP
$temp_array=array()//临时阵列
$result=mysqli_query($con,“从楼层目录中选择*,其中级别='$level'按类别排序”);
while($row=mysqli\u fetch\u数组($result)){
$temp_数组[$row['categories']][=$row['name'];//将数据放入临时数组
}
foreach($temp_数组作为$category=>$names){
$data.=''.$category.';
foreach($name作为$name){
$data.='-
。$name
';
}
$data.='';
}
未测试,但它应该满足您的需要。一种方法是使用您的类别作为键创建一个新数组,并将属于该类别的所有名称放入该类别的数组中。循环新数组并创建HTML
PHP
$temp_array=array()//临时阵列
$result=mysqli_query($con,“从楼层目录中选择*,其中级别='$level'按类别排序”);
while($row=mysqli\u fetch\u数组($result)){
$temp_数组[$row['categories']][=$row['name'];//将数据放入临时数组
}
foreach($temp_数组作为$category=>$names){
$data.=''.$category.';
foreach($name作为$name){
$data.='-
。$name
';
}
$data.='';
}
未测试,但它应该满足您的需要。一种方法是使用您的类别作为键创建一个新数组,并将属于该类别的所有名称放入该类别的数组中。循环新数组并创建HTML
PHP
$temp_array=array()//临时阵列
$result=mysqli_query($con,“从楼层目录中选择*,其中级别='$level'按类别排序”);
while($row=mysqli\u fetch\u数组($result)){
$temp_数组[$row['categories']][=$row['name'];//将数据放入临时数组
}
foreach($temp_数组作为$category=>$names){
$data.=''.$category.';
foreach($name作为$name){
$data.='-
。$name
';
}
$data.='';
}
未经测试,但它可以满足您的需要。试试这个
$result = mysqli_query($con,"SELECT * FROM floor_directory WHERE level='$level' ORDER BY
categories");
while($row = mysqli_fetch_array($result)){
if($previousVal != $row['categories']){
if($data) {
$data .= "</ul>";
}
$data .= '<h1>'.$row['categories'].'</h1><ul class="shop_listing">';
$previousVal = $row['categories'];
}
$data .= '<li>
<p class="float_left">'.$row['name'].'</p>
</li>';
}
$data .= "</ul>";
$result=mysqli\u query($con,“从floor\u目录中选择*,其中level='$level'按顺序排列
类别);;
while($row=mysqli\u fetch\u数组($result)){
if($previousVal!=$row['categories'])){
如果($数据){
$data.=“”;
}
$temp_array=array();//temporary array
$result = mysqli_query($con,"SELECT * FROM floor_directory WHERE level='$level' ORDER BY categories");
while($row = mysqli_fetch_array($result)){
$temp_array[$row['categories']][]=$row['name'];//put data into temporary array
}
foreach($temp_array AS $category=>$names){
$data.='<h1>'.$category.'</h1><ul class="shop_listing">';
foreach($names AS $name){
$data.='<li>
<p class="float_left">'.$name.'</p>
</li>';
}
$data.='<ul>';
}
$result = mysqli_query($con,"SELECT * FROM floor_directory WHERE level='$level' ORDER BY
categories");
while($row = mysqli_fetch_array($result)){
if($previousVal != $row['categories']){
if($data) {
$data .= "</ul>";
}
$data .= '<h1>'.$row['categories'].'</h1><ul class="shop_listing">';
$previousVal = $row['categories'];
}
$data .= '<li>
<p class="float_left">'.$row['name'].'</p>
</li>';
}
$data .= "</ul>";