【问题标题】:unable to sort alphabatically when calling data from db从数据库调用数据时无法按字母顺序排序
【发布时间】:2021-05-25 05:33:42
【问题描述】:

我正在尝试按字母顺序排序。我正在从数据库中调用数据。在表中,我存储了像铃木、丰田这样的制造商的 ID。我有 1 个表命名 Make,我在其中保存 Makes like Toyota。 然后我将添加到模型中,比如陆地巡洋舰是一个模型,它的品牌是丰田。我正在从 Make 的表中插入 Make 的 ID。然后在前端,我将 ID 转换回 Make 的名称。我想按字母顺序显示 Makes name。

我在做什么

<?php
$SelectMainCats = mysqli_query($con, "SELECT * FROM model");
$S_NO = 0;
while($row=mysqli_fetch_assoc($SelectMainCats)){
$S_NO++;      
$getid          = $row['id'];
//converting ids to names                   
$main_make_query = mysqli_query($con,"SELECT * FROM make WHERE id=".$row['make']);
$main_make       = mysqli_fetch_assoc($main_make_query);
?> 

前端调用

<td><?php echo $main_make['maker_name'];?></td>

【问题讨论】:

  • “我正在尝试按字母顺序排序。” - 你不是很努力。我希望在您的查询中看到 ORDER BY,或者在您的 PHP 代码中看到 sort()usort() 或相关函数。
  • 对不起,我已经用过了,但是我的数据停止显示。我这样做了 $main_make_query = mysqli_query($con,"SELECT * FROM make order by maker_name ASC WHERE id=".$row['make']);
  • @TeamThunder 我建议您首先让您的 SQL 查询在 PHP 之外正常工作。正如@Tangentially 所说,ORDER BY 是对数据进行排序的方式。如果这不起作用,那么您的数据可能有问题,例如空白列值。我建议您找到一个查询工具来检查表数据,并尝试使用 SQL 查询。祝你好运!

标签: php


【解决方案1】:

运行查询并循环遍历结果集以运行更多查询几乎总是选择数据的错误方法。您应该使用 JOIN 来链接两个表,然后一个查询将检索所有数据,并按您想要的顺序排序。

根据这些数据:

制作

id  makerName
1   Ford
2   Suzuki
3   Toyota

模型

id  makerId  modelName
1   1        Prefect
2   2        Swift
3   3        LandCruiser
4   3        Celica
5   1        Orion
6   2        Splash
7   1        Mondeo

这个查询

SELECT b.makerName, a.modelName FROM models a join makes b on a.makerId = b.id order by makerName;

给出这个结果

makerName  modelName
Ford       Prefect
Ford       Orion
Ford       Mondeo
Suzuki     Swift
Suzuki     Splash
Toyota     LandCruiser
Toyota     Celica

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多