Php MYSQL按字母顺序排序不起作用
我有一个数据库,里面有一张满是设施名称的表格。我试图按设施名称的字母顺序输出设施,并显示与之关联的帐户 设施表如下所示:Php MYSQL按字母顺序排序不起作用,php,mysql,Php,Mysql,我有一个数据库,里面有一张满是设施名称的表格。我试图按设施名称的字母顺序输出设施,并显示与之关联的帐户 设施表如下所示: id | account_id | facility_name | 2 | 2 | Facility A | 3 | 2 | Facility B | 4 | 2 | Facility A | account_id | account_name | 1 | Account 1
id | account_id | facility_name |
2 | 2 | Facility A |
3 | 2 | Facility B |
4 | 2 | Facility A |
account_id | account_name |
1 | Account 1 |
2 | Account 2 |
3 | Account 3 |
facility_name | account_name |
Facility A | Account 1 |
Facility B | Account 1 |
ORDER BY `facility_name` ASC
Accounts表如下所示:
id | account_id | facility_name |
2 | 2 | Facility A |
3 | 2 | Facility B |
4 | 2 | Facility A |
account_id | account_name |
1 | Account 1 |
2 | Account 2 |
3 | Account 3 |
facility_name | account_name |
Facility A | Account 1 |
Facility B | Account 1 |
ORDER BY `facility_name` ASC
我试图让我的输出像这样:
id | account_id | facility_name |
2 | 2 | Facility A |
3 | 2 | Facility B |
4 | 2 | Facility A |
account_id | account_name |
1 | Account 1 |
2 | Account 2 |
3 | Account 3 |
facility_name | account_name |
Facility A | Account 1 |
Facility B | Account 1 |
ORDER BY `facility_name` ASC
我正在使用PHP将其输出到一个表中,所以这里有点像:
$sql = "SELECT * FROM facility INNER JOIN account ON account.account_id = facility.account_id WHERE facility.account_id = '". $q ."' ORDER BY 'facility_name'";
echo "<table>
<tr>
<th>Facility Name</th>
<th>Account Name</th>
</tr>";
while ($row = mysqli_fetch_array($data)) {
echo "<tr>";
echo "<td>" . $row['facility_name'] . "</td>";
echo "<td>" . $row['account_name'] . "</td>";
echo "</tr>";
}
echo "</table>";
$sql=“从account.account\u id=facility.account\u id,其中facility.account\u id=”上的设施内部联接帐户中选择*”$q.“‘设施名称’下的订单”;
回声“
设施名称
帐户名
";
while($row=mysqli\u fetch\u数组($data)){
回声“;
回显“$row['facility_name']”;
回显“$row['account_name']”;
回声“;
}
回声“;
然而,这似乎并不是对我的表和设施名称进行排序,它只是按照输入的顺序进行输出
如何输出数据,使其也按“设施名称”排序?问题就在这里:
ORDER BY 'facility_name'";
您实际上是通过字符串“facility_name”进行订购
去掉下面的引号:
ORDER BY facility_name";
引述是错误的。它应该是不带引号的字段名:
ORDER BY facility_name
或使用反勾号(允许,但仅当字段名中有空格或其他特殊字符时才需要):
如果您像这样使用普通引号,它将是一个字符串文字,因此您只需按文本
'facility\u name'
排序,该文本对每行都具有相同的常量值,因此排序没有效果。将其添加到查询中应该可以:
ORDER BY facility_name ASC
如果没有,请尝试将其放在记号内,如下所示:
id | account_id | facility_name |
2 | 2 | Facility A |
3 | 2 | Facility B |
4 | 2 | Facility A |
account_id | account_name |
1 | Account 1 |
2 | Account 2 |
3 | Account 3 |
facility_name | account_name |
Facility A | Account 1 |
Facility B | Account 1 |
ORDER BY `facility_name` ASC
是的,知道了,谢谢,我会接受的,当我可以的时候!您没有检查查询中的错误,它会抛出您所犯的语法错误。