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