我有一个包含设施名称的表的数据库。我试图按设施名称的字母顺序输出设施+显示与之关联的帐户。
设施表看起来像这样:
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 |
我正在使用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>";
然而,这似乎并没有将我的表命名为我的设施名称,它只是按照输入的顺序输出。
如何输出我的数据,以便它也被&#39; facility_name&#39;?
订购答案 0 :(得分:2)
问题就在这里:
ORDER BY 'facility_name'";
您最近通过字符串&#34; facility_name&#34;。
进行排序取出引号如:
ORDER BY facility_name";
答案 1 :(得分:0)
报价错了。它应该只是没有引号的字段名称:
ORDER BY facility_name
或使用反引号(允许,但只有在字段名称中有空格或其他特殊字符时才需要):
ORDER BY `facility_name`
如果你像你一样使用普通引号,它将是一个字符串文字,所以你只是按文本'facility_name'
排序,它对每一行都有相同的常量值,所以排序没有效果。