在SELECT SQL中一次使用LIMIT WHERE

时间:2012-12-04 20:45:06

标签: php mysql sql

  

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

我有SELECT SQL的问题,因为我已经包含了LIMIT,所以我的代码看起来像这样:

$id = $_GET['id'];

$sql = "UPDATE rl_threads SET views = views + 1 WHERE id = '$id'";

$sql = mysql_query($sql);

//Pager

$ile = 10;

if(isset($_GET['page']))
{
  $strona = $_GET['page'];
}
else
{
  $strona = 1;
}

$strona = $strona - 1;

$offset = $strona * $ile;

//Koniec Pagera

$sql = "SELECT * FROM rl_posts LIMIT $od, 10 WHERE thread_id = '$id'";

$sql = mysql_query($sql);

直到我没有添加限制它才能正常工作但脚本说:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/radiolev/public_html/forum.php on line 194
Partnerzy

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

SELECT子句后,正确的LIMIT语法有WHERE ,如下所示:

$sql = "SELECT * FROM rl_posts WHERE thread_id = '$id' LIMIT $od, 10";

您收到的错误Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource ...是在MySQL查询失败时引起的。更新到上面应该可以解决问题,假设您已经在某处定义了$od(如果未定义,则会看到相同的警告)。

旁注,不具体回答:
我建议升级到MySQLiPDO扩展程序。两者都支持预备语句,这些语句可以使您的查询更易于阅读/管理,并提供针对SQL注入攻击的额外安全性。

答案 1 :(得分:0)

SELECT * FROM rl_posts WHERE thread_id = '$id' LIMIT $od, 10