0
我不是很擅長php和mysql,但基於我的代碼,我能夠顯示我想要的結果,但它不顯示在正確的DOM結構體。PHP顯示div,h1,ul使用while循環中的數據
我想顯示象下面這樣:
<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 = '';
}
?>
希望你們明白。預先感謝幫助傢伙。在同時
將數據庫處理代碼與HTML處理代碼分開 –
還利用MySQLi的能力和使用[變量綁定](http://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php)而不是將所有內容填充到SQL語句中。 – Passerby
謝謝你的回覆。你提到的先進水平是什麼? = x – Dr3am3rz