php - 如何按类别显示数据库中的数据?

标签 php mysql

所以我的网站允许用户创建联系人列表,现在我添加了用户命名的类别。我目前正在使用从我的 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/

相关文章:

php - 使用php仅将txt文件中的某些行加载到mysql表中

php - Laravel Eloquent 乘列总和

php - 在 Laravel PHP 框架中找不到 PGSQL 驱动程序

php - mysqli_query 无法识别数据库?

php - 编码和缓存 gravatar 图片有什么副作用吗?

mysql - 运行链接到我的 Django 项目的 mysql 数据库

mysql - 尝试设置 MySQL root 密码导致错误

php - phonegap 连接到服务器上的 php

PHPExcel写Excel并保存到服务器?

php - 如何在不刷新页面的情况下获取搜索结果