PHP:MYSQLI-从同一行获取数据

PHP:MYSQLI-从同一行获取数据,php,mysql,mysqli,Php,Mysql,Mysqli,我使用了相同的数据,但这里只提供了一个 现在我想从最后一行获取文本 $sql_query = $connection->query("SELECT DISTINCT `sent_by`, `sent_to` FROM `chat` WHERE `sent_by` = '1' OR `sent_to` = '1'"); if($sql_query->num_rows > 0) { while ($fetch_data = $sql_query->fetch_arr

我使用了相同的数据,但这里只提供了一个

现在我想从最后一行获取文本

$sql_query = $connection->query("SELECT DISTINCT `sent_by`, `sent_to` FROM `chat` WHERE `sent_by` = '1' OR `sent_to` = '1'"); 
if($sql_query->num_rows > 0) {
    while ($fetch_data = $sql_query->fetch_array(MYSQLI_ASSOC)) {
        if($fetch_data["sent_by"] == 1) {
            echo $fetch_data["sent_to"]. " TEXT: ". $fetch_data["text"].  </br>";
        } else {
            echo $fetch_data["sent_by"]. " TEXT: ". $fetch_data["text"].  </br>";
        }
    }
}
数据库结构:

对不起,我的英语不好

如果字段id为自动递增字段,则可以使用此SQL查询获取最后一行:

SELECT DISTINCT `sent_by`, `sent_to`, `id`, `text` FROM `chat` WHERE `sent_by` = '1' OR `sent_to` = '1' ORDER BY `id` DESC LIMIT 1
因此,改变这一点:

$sql_query = $connection->query("SELECT DISTINCT `sent_by`, `sent_to` FROM `chat` WHERE `sent_by` = '1' OR `sent_to` = '1'"); 
关于这一点:

$sql_query = $connection->query("SELECT DISTINCT `sent_by`, `sent_to`, `id`, `text` FROM `chat` WHERE `sent_by` = '1' OR `sent_to` = '1' ORDER BY `id` DESC LIMIT 1"); 
在这个新查询中,您将按照id字段的值降序排列所有结果


如果要从查询中删除DISTINCT,还可以从查询中的选择列表中删除id。

删除DISTINCT,然后仅创建查询

$sql_query = $connection->query("SELECT sent_by, sent_to FROM chat WHERE sent_by = '1' OR `sent_to` = '1'"); 

文本不在select语句中@会计师م当我添加时,我没有得到相同的数据通知:试图获得非-object@Freensi执行echo$connection->error并查看errorORDER BY NOT WORK I GET ERRORExpression 1 of ORDER BY子句不在选择列表中,引用列'new_database.chat.id',该列不在选择列表中;这与DISTINCTWhy不兼容您为什么将id添加到字段列表中?