php - 从数据库调用数据时无法按字母顺序排序
问题描述
我正在尝试按字母顺序排序。我正在从数据库中调用数据。在表中,我存储了像铃木、丰田这样的制造商的 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>
解决方案
运行查询并循环遍历结果集以运行更多查询几乎总是选择数据的错误方法。您应该使用 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
推荐阅读
- ios - 在 Mac 上作为 Catalyst 应用程序运行时 WKWebView 内容太小
- reactjs - 如何让这个 Formik 逻辑像我希望提交按钮做我想做的那样工作
- python - 如何避免使用组合子类化 pandas DataFrame?
- c++ - (Seg Fault) 使用 realloc 将文本文件逐行读入 char 双指针
- nginx - 使用闪亮的服务器和 nginx 设置用于缓存的 http 标头
- javascript - 动态jquery。如何仅将 jquery 应用于某些元素?
- postgresql - 了解数据库/sql
- python - Pandas 将不同类型的多行转换为 1 行,每种类型多列
- javascript - 状态改变后antd表单初始值不更新
- javascript - 删除多个数组之间的公共元素