MYSQL我可以动态更改LIMIT结果的方法吗?

时间:2011-04-06 12:22:26

标签: php mysql ajax limit

而不是硬编码查询:LIMIT 3,我希望每次按下按钮时LIMIT编号都不同。

这就是我到目前为止所得到的:

$region=$_GET["region"];

$number=$_GET["limit"];

$con = mysql_connect('localhost') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());

$sql1="SELECT size,price,member FROM buy  WHERE region= '".$region."' LIMIT = '".$number."'  ORDER BY price DESC " 

我得到的错误是:

  

警告:mysql_fetch_array()期望参数1为资源

所以LIMIT是空的

所以我有两个按钮:一个设置$ number = 3另一个设置$ number = 10但是我不知道如何将它放在SQL中。

目前只有选项WHERE region= '".$region."'有效。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

首先 - 删除限制号周围的引号。

其次,在号码前删除=

第三 - 在ORDER BY之后移动LIMIT

我认为这就是全部:)

$sql1="SELECT size,price,member FROM buy  WHERE region= '".$region."' ORDER BY price DESC LIMIT ".(int) $number 

答案 1 :(得分:1)

这里有几点:

  • MySQL LIMIT语句可以同时使用LIMIT和OFFSET,这是分页所需的基础知识。请参阅MySQL SELECT Syntax
  • 您确定在网址上设置了限制变量吗?您正在使用$ _GET ['limit'],但如果它不在URL上,则它将没有值,它将破坏您的查询。尝试显示/记录SQL语句以查看发生的情况。
  • 理想情况下,您还应该清理所有$ _GET变量并确保它们有效