首页 > 解决方案 > 从数据库调用数据时无法按字母顺序排序

问题描述

我正在尝试按字母顺序排序。我正在从数据库中调用数据。在表中,我存储了像铃木、丰田这样的制造商的 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>

标签: php

解决方案


运行查询并循环遍历结果集以运行更多查询几乎总是选择数据的错误方法。您应该使用 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

推荐阅读