2015-04-22 35 views
0

我得到这个代码,并由于某种原因,$ I ++不work.It显示数据库中的一切,我只是想显示的10个元素如何使脚本运行到某个点?

if($i <= 10){ 
      while($row = mysqli_fetch_assoc($result)){ 

      echo '<li>'.$row['title'].'</li>'; 
      $i++; 
    } 
} 
+6

和使用'LIMIT 10'是不是一种选择?尝试一个'foreach'或'for' –

回答

5

速战速决,变化:

if($i <= 10){ 
    while($row = mysqli_fetch_assoc($result)){ 
     echo '<li>'.$row['title'].'</li>'; 
     $i++; 
    } 
} 

...到:

while($i <= 10 && $row = mysqli_fetch_assoc($result)){ 
    echo '<li>'.$row['title'].'</li>'; 
    $i++; 
} 

说明:

一旦您在if条件块中,那么if条件将再次得到评估。只有while条件会在每个循环中进行评估,因此请将$i <= 10转换为while条件。使用AND &&是因为您希望两个条件均为true以继续循环。

但是,雅,弗雷德-ii-建议,增加LIMIT 10到数据库查询可以减少你必须处理的数据量。

+0

它的工作原理,谢谢。 – Andrew

+1

感谢您提供解释 - 它解决了OP原始代码的实际问题,我认为这非常有帮助。 – showdev

+0

同上^ –

0

你应该限制你的MySql查询与LIMIT 10结果。
MySql LIMIT tutorial

即:

select something from something LIMIT 10; 

回答你直接的问题:
使用break

$i = 1; 
while($row = mysqli_fetch_assoc($result)) { 
    echo '<li>'.$row['title'].'</li>'; 
    $i++; 
    if($i > 10) { 
     break; 
    } 
} 

break 结束执行当前for,foreach,while,do-whileswitch结构。

相关问题