ORDER BY不适用于mysql表

时间:2018-01-12 23:54:56

标签: mysql

我在phpmyadmin中保存了一个虚拟数据库。我正在尝试根据列user_uid对数据进行排序。 这是我的一些数据库

enter image description here

我用来排序表的PHP代码是

<?php
include_once 'dbh.inc.php';//file contains the variables req to connect to database
$sql = "SELECT * FROM client 
        ORDER BY user_uid;";
$result = mysqli_query($conn,$sql);
if(($result))
{
    $row = array();
    ($row = mysqli_fetch_array($result));
    echo($row['client_name']);
}

然而,这似乎不起作用。我的代码出错了什么?

其他信息:user_uid是外键,对user_uid的引用来自另一个名为users的表

2 个答案:

答案 0 :(得分:1)

你的代码中已写好了

ORDER BY cost_per_session

只需将其更改为

即可
ORDER BY user_id

您可以使用ASC或DESC升序或降序。

答案 1 :(得分:0)

您的代码只显示一条记录。下面是一个工作示例,它使用所需的while循环来显示每个获取记录的client_name

include_once 'dbh.inc.php';

$sql = 'SELECT * FROM client 
        ORDER BY user_uid';

$result = mysqli_query($conn, $sql);

if ($result->num_rows > 0) {
    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
        echo $row['client_name'] . '<br>';
    }
}

我删除了vars周围所有不需要的括号和sql语句末尾的分号。

祝你好运。

编辑1:我将$connection更正为$conn

编辑2:我实现了对行数($result->num_rows > 0)的检查,而不是$result本身(它始终是{{1}类型的对象因此,检查总是返回mysqli_result - 即使没有找到记录也是如此。