如果标题混淆了,我很抱歉,这个问题很难命名。
我一直在想如何从MySQL中检索数据,但只检索数据,跳过按id排序的前4个输出。
例如:
function firstFour()
{
$sth = $this->db->prepare("SELECT data FROM table WHERE category = 'Sports'
ORDER BY id LIMIT 4");
$sth->execute();
$row = $sth->fetch();
return $row;
}然后,在第二个查询中,跳过上面的firstFour查询中按id排序的前四个查询,然后从体育类输出其余的数据。
发布于 2013-11-07 17:15:24
您需要设置限制,如下所示,限制4,4
限制8,4
等等
发布于 2013-11-07 17:15:21
使用此查询,您的限制4将使其从第0行开始,并从第4行开始检索,将限制设置为4,xxxx将从4转到任何xxxx。我用了大量的数字来代替xxxx。
"SELECT data FROM table WHERE category = 'Sports'
ORDER BY id LIMIT 4, 99999999999"发布于 2013-11-07 17:26:23
为了扩展扎齐杜尔的答案,并让你的生活变得更简单,你可能需要稍微概括一下你的函数--使用firstFour()、secondFour()等等会让你的生活更加艰难。我建议采纳扎齐杜尔的想法,并输入你的极限变量:
function anyFour($lowLimit)
{
$sth = $this->db->prepare("SELECT data FROM table WHERE category = 'Sports'
ORDER BY id LIMIT $lowLimit, 4");
$sth->execute();
$row = $sth->fetch();
return $row;
}那么,如果您希望保留函数firstFour(),则如下所示:
function firstFour()
{
return anyFour(0);
}在那里,您可以创建一个简单的循环,其增量为4。
for ($x = 0; $x < 999;$x++) // 999 should be the total number of sets you want to return...
{
// on each loop, $myRows returns the next 4 rows:
$lowLimit = $x * 4;
$myRows = anyFour($lowLimit);
}https://stackoverflow.com/questions/19842256
复制相似问题