while / foreach /一次获得3个结果?

我试图从一个mysql数据库中获得3个结果(所以它一次显示3个)

所以它会是这样的

$sql = mysql_query("SELECT * FROM table");
while ($row = mysql_fetch_array($sql)) {
    print $row['username'];
    print $row['username2'];
    print $row['username3'];
}

但是$ row ['username']; 和$ row ['username2']; $行[ 'USERNAME3']; 将只是mysql表中的第一个第二和第三个结果。

然后它会重复和$ row ['username']; 和$ row ['username2']; 和$ row ['username3']; 将是第四,第五和第六等。

任何想法我怎么能做到这一点?


你可以这样做:

function mysql_fetch_n_rows($rs, $n)
{
  $rows = array();
  while ($n-- && ($row = mysql_fetch_array($rs)))
  {
    $rows[] = $row;
  }

  return $rows;
}

$rs = mysql_query("SELECT * FROM table");

while ($rows = mysql_fetch_n_rows($rs, 3))
{
    print $rows[0]['username'];
    print $rows[1]['username'];
    print $rows[2]['username'];
}

(免责声明:显然你需要验证你实际上有3行,你可能只有一两行。)

但是我怀疑你真的需要上面的代码。 一般来说,做一个($i % 3)比其他一些答案提示的要容易得多。 我绝对不会发布这个答案,因为我认为这是最好的通用解决方案,但只是作为创建通用函数的一个例子,而不是试图在while循环内对这种类型的解决方案进行硬编码。


你可以使用限制条款,

select * from table limit 1, 3

那么对于接下来的3个,

select * from table limit 4, 3

(您可能想查看语法,我可能会反向订购)


为了只显示三个结果,你可以这样做:

$sql = mysql_query("SELECT * FROM table");

$count = 0;
while ($row = mysql_fetch_array($sql)) {
    $count++;
    if ($count === 3) break; 
    print $row['username'];
}

或者,如果您愿意,您可以在查询中指定LIMIT子句以获取三条记录:

$sql = mysql_query("SELECT * FROM table LIMIT 3");

while ($row = mysql_fetch_array($sql)) {
    print $row['username'];
}

使用LIMIT子句,您还可以指定要返回的起始索引和行数,如下所示:

$sql = mysql_query("SELECT * FROM table LIMIT 4, 3");

上述查询将从第4行开始返回3行。

链接地址: http://www.djcxy.com/p/75301.html

上一篇: while/foreach/for get 3 results at a time?

下一篇: Implementation of Levenshtein distance for mysql/fuzzy search?