我尝试仅选择$from
和$to
之间的差异,并按降序输出这些行。到目前为止的问题是我输入'{5}作为$from
值和'10'输入$to
值,但它似乎输出10而不是5。
请你告诉我我哪里出错了?
$query = mysql_query("SELECT * FROM `Posts` WHERE `isPublic` = 'yes' ORDER BY `date` DESC LIMIT $from,$to") or die(mysql_error());
答案 0 :(得分:9)
它不是FROM和TO,它是FROM和HOWMANY。
答案 1 :(得分:7)
检查出来:SELECT MySQL documentation。
LIMIT 5, 10
所做的是LIMIT 10 OFFSET 5
的同义词(从数据库返回的集合的开头跳过5个结果得到10个结果)。
答案 2 :(得分:1)
MySQL限制的作用是,如果只提供1个值,则会限制条目数。如果提供值,则第一个是索引从哪里开始,第二个是要显示的条目数。如果您希望显示5到10之间的条目,则需要将第二个变量作为$to-$from
传递,如下所示:
$query = mysql_query("SELECT * FROM `Posts` WHERE `isPublic` = 'yes' ORDER BY `date` DESC LIMIT $from,".($from-$to)) or die(mysql_error());
答案 3 :(得分:0)
您的$to
变量实际上是$length
...
所以你要告诉它从第5项开始并再展示10项。
答案 4 :(得分:0)
你误解了LIMIT
的工作原理。它首先要求行偏移(起始行号),然后是要返回的行数,现在是结束行号。而是使用
$from = 5;
$to = 5;
然而,当第二个值确实是行数时,将第二个值视为$to
会让人感到困惑。为了清楚起见,请将其称为$numrows
。
答案 5 :(得分:0)
第二个限制参数是你想要的数量。
$difference = $to- $from;
LIMIT $from, $difference
这将从$difference
开始输出$from
行。
答案 6 :(得分:0)
第一个参数是偏移量,第二个参数是实际限制值。因此,如果您想跳过前5个结果并显示接下来的10个结果,则需要LIMIT 5, 10