我们如何处理while循环迭代?

时间:2015-08-01 13:28:16

标签: php mysqli while-loop

我有正常工作的代码块,但问题是......

  • 在一个循环中打印'one'qoute。
  • 在第二个'一个'和'两个'
  • 排在第三位

......等到循环执行。

我想在第一次打印一次,第二次打第二次,依此类推直到循环执行。 这是我的代码块

<div class="records round">
<?php
//show records
$query = mysqli_query($con,"SELECT table2.col2 AS a,table1.col2 AS b, table1.col1 AS c, table1.q_url AS d 
                            FROM {$statement} 
                            LIMIT {$startpoint} , {$limit}");
$output='';
$Authorname='';
$count=1;
while ($row = mysqli_fetch_array($query)) {
$Authorname =$row['a'];
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
          $url=explode('/',$url);
    ?>
        <div class="record round"><?php echo $count; $output .='<a href="http://localhost/quotes/'.$url[5].'/'.$row['d'].'.html">';
         echo $output .=$row['b'].'</a>';?></div>
     <?php 
          $count++; 

        }
        ?>
</div>

1 个答案:

答案 0 :(得分:1)

你在做什么在这里将字符串附加到$ output变量,所以在每次迭代时它保持附加。 在执行新迭代之前,您的$ output变量必须为空。

这就是你得到这样的输出的原因。

所以为了避免这种情况,你必须在循环内重新初始化$ output变量。 检查以下代码:

while ($row = mysqli_fetch_array($query)) { 
$output='';
$Authorname =$row['a'];
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
          $url=explode('/',$url);
    ?>
        <div class="record round"><?php echo $count; $output .='<a href="http://localhost/quotes/'.$url[5].'/'.$row['d'].'.html">';
         echo $output .=$row['b'].'</a>';?></div>
     <?php 
          $count++; 

        }