在从db调用数据时无法按字母顺序排序



我正在尝试按字母顺序排序。我正在从数据库调用数据。在表中,我存储了铃木、丰田等品牌的ID。我有一个名为Make的表,我在其中保存了像丰田这样的制造商。然后我加入了车型,就像陆地巡洋舰是一种车型,它的制造是丰田。我从Make的表中插入Make的ID。然后在前端,我将ID转换回Make的名字。我想按字母顺序显示make 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>

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

最新更新