在PHP中循环MySQL查询结果

时间:2011-05-14 12:28:43

标签: php mysql

$b = 1;
$d = mysql_query("select *from 'table_name'");
while($b < 10){
    while($e = mysql_fetch_array($d)){
        echo $e['name_field'];
    }
    $b++;
}

我想循环输出,但我卡住了。我已经尝试但仍然一无所获。 像这样的东西:

<?php
$a = 0; 
$b = 0;
for($a=0;$a<10;$a++){
    for($b=0;$b<10;$b++){
        echo $b;        
    }
}

5 个答案:

答案 0 :(得分:3)

以空格分隔*FROM。使用反引号或没有分隔符而不是表名的单引号。

如果您想限制结果,请在查询中添加LIMIT表达式:

SELECT * FROM `table_name` LIMIT 10

然后循环结果:

while($row = mysql_fetch_array($d)){
     echo $row['name_field'];
}

答案 1 :(得分:2)

你没有在任何地方增加$ b。它被设置为1并且从未增加,所以它总是小于10。

答案 2 :(得分:2)

您的查询错误,因为表名不应该是单引号,您可以使用反引号。

如果您想限制结果只显示10行,请在查询中添加LIMIT,这应该是

$d = mysql_query("select * from `table_name` limit 10");

删除外循环

while($e = mysql_fetch_array($d)){
     echo $e['name_field'];
}

修改

您可能希望结果显示10次。只需将查询放在外部while循环中。

$b = 0;
while($b < 10)
{
      $d = mysql_query("select * from `table_name`");
      while($e = mysql_fetch_array($d))
      {
        echo $e['name_field'];
      }
      $b++;
}

答案 3 :(得分:2)

$d = mysql_query("select *from `table_name` LIMIT 10");  // use back-ticks and limit in query

while($e = mysql_fetch_array($d)){
     echo $e['name_field'];
}

答案 4 :(得分:0)

如果您想要输出前9行(1 ..&lt; 10)的'name_field',您可以使用:

$d = mysql_query("SELECT * FROM `table_name` LIMIT 9");
while ($e = mysql_fetch_array($d)) {
    echo $e['name_field'];
}

但是,如果您想在循环结构中为所有行输出'name_field'9次(1 ..&lt; 10),则只需在循环结束时添加以下两行:

    mysql_data_seek($d, 0);
    $b++;

结果代码为:

$b = 1;
$d = mysql_query("SELECT * FROM `table_name` LIMIT 9");
while ($b < 10) {
    while ($e = mysql_fetch_array($d)) {
        echo $e['name_field'];
    }
    mysql_data_seek($d, 0);
    $b++;
}