DESC不会工作 - “期望参数为1”

时间:2010-08-12 20:44:06

标签: php mysql

  

可能重复:
  mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

当我尝试将输出排序到DESC时,我收到此错误:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in

这是我的专栏:

$queryForWall = mysql_query("SELECT * FROM users_wall WHERE uID = '$showU[id]' DESC");
while($displayWall = mysql_fetch_array($queryForWall)){

正如您所见,我在那里添加了DESC,但我一直收到错误。

6 个答案:

答案 0 :(得分:4)

DESC本身无效。

你需要

ORDER BY <some column or expression> DESC

更一般地说,您应该设法告诉SQL查询何时出错。

也许是这样的:

<?PHP
$result = mysql_query('<some sql query>');
if (! $result){
     $error = mysql_error();
     //do something with $error, like logging it, using it with trigger_error, etc
}
while($row = mysql_fetch_array($result)){
    // process results normally
}

答案 1 :(得分:2)

你需要一个ORDER BY。

SELECT * FROM users_wall WHERE uID = '$showU[id]' ORDER BY uID DESC

查询导致错误,这意味着$ queryForWall == false。这就是为什么php警告说你传递一个布尔值作为你的参数(因为你是)。

答案 2 :(得分:1)

已发布的答案是正确的。但是,我想补充一点。您收到了原始错误消息,因为您的SQL很糟糕,mysql_query失败了。如果您查看PHP文档,您会看到mysql_query在出错时返回FALSE。

在尝试循环结果集之前,应始终检查SQL查询的结果,如下所示:

$queryForWall = mysql_query("SELECT * FROM users_wall WHERE uID = '$showU[id]' ORDER BY uID DESC");
if ($queryForWall) {
    while($displayWall = mysql_fetch_array($queryForWall)){
    }
}

答案 3 :(得分:0)

您尝试使用DESC的方式表明您正在尝试订购SELECT查询的结果。为此,您需要使用ORDER BY。请参阅:http://dev.mysql.com/doc/refman/5.4/en/select.html

答案 4 :(得分:0)

如果您尝试订购结果,则需要使用ORDER BY子句。

例如:

SELECT * FROM users_wall WHERE ... ORDER BY date_added DESC

查看完整的SELECT syntax以获取更多信息。

答案 5 :(得分:0)

SELECT * FROM users_wall WHERE uID = '$showU[id]' ORDER BY uID DESC

您需要通过降序来指定您要订购的列。