我尝试使用以下功能打印基于唯一列值的几个列表:
<?php
function echoList($country) {
$result = mysql_query("SELECT * FROM `$country`");
$previousClass = '';
while($row = mysql_fetch_array($result)){
$thisClass = $row['class'];
if($thisClass != $previousClass) {
echo '<h3>' . $thisClass.'</h3>';
}
echo '<ul>';
$id = $row['id'];
echo '<li><a href="' . $country . '/'. $id . '">' . $id . '</a></li>';
echo '</ul>';
$previousClass = $thisClass;
}
}
表格是这样的:
id,class,description
1,B,description1
2,B,description2
3,C,description3
4,B,description4
5,B,description5
但这是重复而不是在同一个UL中分组,我试图分组,但我不知道怎么做, 我喜欢的是以这种方式打印:
<h3>B</h3>
<ul>
<li>1</li>
<li>2</li>
<li>4</li>
<li>5</li>
</ul>
<h3>C</h3>
<ul>
<li>1</li>
</ul>
如果你们中的任何人可以帮助这个,谢谢
答案 0 :(得分:2)
<?php
function echoList($country) {
$result = mysql_query("SELECT * FROM `$country` order by class, id");
$previousClass = '';
while($row = mysql_fetch_array($result)){
$thisClass = $row['class'];
if($thisClass != $previousClass) {
if ($previousClass) { echo '</ul>'; }
echo '<h3>' . $thisClass.'</h3>';
echo '<ul>';
}
$id = $row['id'];
echo '<li><a href="' . $country . '/'. $id . '">' . $id . '</a></li>';
$previousClass = $thisClass;
}
echo '</ul>';
}
像这样的东西。此外,不推荐使用mysql_ *函数。