所以我的网站允许用户创建联系人列表,现在我添加了用户命名的类别。我目前正在使用从我的 SQL 查询生成的关联数组的 while 循环来显示联系人列表。
所以看起来像这样:
Contacts:
Contact 1
Contact 2
Contact 3
现在我在数据库中有一个用于联系人类别的新列,但我不知道如何对它们进行排序并显示联系人类别的名称。我试图让它看起来像这样:
Contacts:
Category 1
Contact 1
Contact 2
Contact 3
Category 2
Contact 1
Contact 2
Contact 3
如果你需要的话,我的实际代码:
<?php
//START CONTACTS LOOP
$contacts_query = "SELECT id, name FROM contacts WHERE ownerid = '$userID' ORDER BY `name` ASC";
$run_contacts_query = mysql_query($contacts_query);
if($run_contacts_query){
while($c_data = mysql_fetch_assoc($run_contacts_query)){
$id = $c_data['id'];
$name = $c_data['name'];
?>
<li><a href="contact.php?id=<?=$id?>"><?=$name?></a></li>
<?php
}} //END CONTACTS LOOP
?>
最佳答案
只需检索类别并先按类别排序,然后按名称排序。并检查类别是否与上一个不同:
$contacts_query = "SELECT id, name, category";
$contacts_query.= " FROM contacts";
$contacts_query.= " WHERE ownerid = '$userID'";
$contacts_query.= " ORDER BY `category`, `name` ASC";
$run_contacts_query = mysql_query($contacts_query);
if($run_contacts_query) {
$currentCategory = null;
while($c_data = mysql_fetch_assoc($run_contacts_query)){
if ($c_data['category'] != $currentCategory) {
echo '<li>' . $c_data['category'] . '</li>';
$currentCategory = $c_data['category'];
}
echo '<li><a href="contact.php?id=' . $id . '">' . $name . '</a></li>';
}
}
关于php - 如何按类别显示数据库中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11701746/