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?