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

是的,知道了,谢谢,我会接受的,当我可以的时候!您没有检查查询中的错误,它会抛出您所犯的语法错误。