Mysql乘法错误

时间:2014-03-20 09:55:29

标签: php mysql

我在下面有这个代码,我使用Mysql循环来获取我的数据库的一些行。 $Pages == 1是我们所在的网页,例如/list.php?page=1但问题是其他部分。如果我们转到第2页$pages2& $pages3回显为40& 80但是mysql循环仍然得到数据库41-120的结果,为什么?我只想在输出中输入第40行到第80行,仅此而已。

if($pages == 1)
{
$pages3 = 40;
$pages2 = 0;
echo $pages2;
echo $pages3;
}
else
{
$pages3 = 40 * $pages;
$pages2 = 40 * $pages - 40;
echo $pages2;
echo $pages3;
}

$currentpage = 0;
$sql = "SELECT * FROM cake";
$numRows = mysql_num_rows(mysql_query($sql));
$getquery = mysql_query("$sql ORDER by ID LIMIT $pages2, $pages3");
while($rows=mysql_fetch_assoc($getquery)){

4 个答案:

答案 0 :(得分:1)

在LIMIT上,第一个参数是从第一行开始(从0开始),第二个参数是要获取的行数。

所以应该是这样的:

$getquery = mysql_query("$sql ORDER by ID LIMIT $pages2, 40");

答案 1 :(得分:0)

试试这个

else
{
 $pages3 = 40;

而不是

else
{
$pages3 = 40 * $pages;

答案 2 :(得分:0)

查看文档https://dev.mysql.com/doc/refman/5.0/en/select.html

LIMIT arg1, arg2

arg1是偏移的 arg2不是。偏移后想要的行

所以如果想要40-80的结果,你必须做

LIMIT 40,40

答案 3 :(得分:0)

使用此

$pages="";
if($pages == 1)
{
  $pages3 = 40;
  $pages2 = 0;
  echo $pages2;
  echo $pages3;
}
else
{
  $pages3 = 40 * $pages;
  $pages2 = (40 * $pages) - 40;
  echo $pages2;
 echo $pages3;
 }

$ pages的值应该是