我在 php 和 mysql 方面不是很好,但根据我的代码,我能够显示我想要的结果,但是它没有以正确的 DOM 结构显示。
我想显示如下:
<div class="container">
<h1>Header</h1>
<ul><li>
<p>data 1</p>
<p>data 2</p>
</li></ul>
</div>
<div class="container">
<h1>Header</h1>
<ul><li>
<p>data 1</p>
<p>data 2</p>
</li></ul>
</div>
我不知道为什么我的代码一直向我返回数据并在第一级 ul 中显示所有内容,而不是像下面这样分开:
<div class="container">
<h1>Header</h1>
<ul><li>
<p>data1</p>
<p>data 2</p>
<div class="container">
<h1>Header</h1>
<ul><li>
<p>data1</p>
<p>data 2</p>
</li></ul>
</div>
</li></ul>
</div>
我玩过代码并尝试了不同的方法,但仍然无法正确显示。下面是我的代码:
<?php
$data='';
$previousVal = '';
// Update new images
$levelArray=array('B1','L1','L2','main','L3','L4','L5');
foreach ($levelArray as $i=>$level) {
$img = "img/".$level.".jpg";
if($level=='main'){
$result = mysqli_query($con,"SELECT * FROM floor_directory ORDER BY categories");
}
else {
$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 .= '<div class="container"><h1>'.$row['categories'].'</h1>';
$previousVal = $row['categories'];
}
$data .= '<ul><li>
<p class="float_left">'.$row['name'].'</p>
<p class="float_right">'.$row['unit_number'].'</p>
</li></ul></div>';
}
if($levelArray[$i]=='main'){
echo '<div class="swiper-slide">
<img src="'.$img.'" alt="" />
<div class="content_container_main">'.$data.'</div>
</div>';
}
else {
echo '<div class="swiper-slide">
<img src="'.$img.'" alt="" />
<div class="content_container">'.$data.'</div>
</div>';
}
$data='';
$previousVal = '';
}
?>
希望大家理解。在此先感谢您的帮助。