【发布时间】:2013-09-12 23:05:02
【问题描述】:
简化:
$q = mysql_query("SELECT * FROM mytable ORDER BY category") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
$cat = $row['category'];
echo $cat."<br />";
}
mytable 持有苹果、香蕉、柑橘
我希望结果以特定顺序显示,例如香蕉、苹果、柑橘。
如何进行查询?
【问题讨论】:
-
首先,停止使用mysql_任何东西。 php.net/manual/en/function.mysql-query.php大红框会解释原因。
-
您的查询中已有 ORDER BY。您唯一可以添加的其他内容是 ASC 或 DESC。在文本字段上使用它时,字母数字是不言自明的。升序是最低到最高 (A-Z),降序是 (z-a)。
-
B,A,C 有意义吗?它不那么系统应该如何知道你想如何订购它?您可以使用 ORDER BY category DESC 或 ORDER BY category ASC,或者然后自己创建一些指定的顺序,但这并不容易,我认为您不是在要求它,不要使用 _fetch_array,而是使用 _fetch_assoc。
-
@Wiggler 我同意 fetch_assoc() 让它更清楚,但你知道 fetch_array() 做同样的事情吗? php.net/manual/en/function.mysql-fetch-array.php
-
mysql_*函数不再维护,不应在任何新代码库中使用。它正在逐步淘汰,以支持更新的 API。相反,您应该将prepared statements 与PDO 或MySQLi 一起使用。