简体   繁体   English

如何跳过重复项并进行排序

[英]How do I skip duplicates and sort

How do I skip duplicates from a database and sort my latest date? 如何跳过数据库中的重复项并排序我的最新日期? And display a foreach unique id do this.. 并显示一个foreach唯一ID来执行此操作。

I'm making a simple chat system, what I'm trying to do is to show every used that has sent a message and skip duplicates user_ids. 我正在制作一个简单的聊天系统,我想要做的是显示每个已发送消息的人,并跳过重复的user_ids。

Also I'm trying to skip user id #1 because that's a admin. 另外,我正在尝试跳过用户ID#1,因为这是管理员。

<?php 

    // Read every user in the database
    $conn = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME . ';charset=utf8', DB_USER, DB_PASS);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sth = $conn->prepare("SELECT DISTINCT user_id FROM live_chat ORDER BY message_date ASC;");
    $sth->execute();
?>
<table cellspacing="0" cellpadding="0" border="0" width="330" class="left">
    <tr>
        <td width="330" valign="top">
            <div class="live_chat_users">
                <?php
                    foreach($sth as $row){
                        if($row['user_id'] == 1){

                        }else{
                            echo $row['user_id']; 
                        }
                    }
                ?>
            </div>
        </td>
    </tr>
</table>

SQLfiddle: http://sqlfiddle.com/#!2/aadcaf SQLfiddle: http ://sqlfiddle.com/#!2/aadcaf

Try something like: 尝试类似:

SELECT user_id 
FROM live_chat  
WHERE user_id != 1
GROUP BY user_id
ORDER BY message_date ASC

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM