PHP循环x次,使用while和if

时间:2014-06-25 23:22:28

标签: php mysql loops if-statement while-loop

所以这让我疯了好几天。我已经尝试了THISTHAT,但没有任何效果。这是基本的纲要:

我有一个拥有200个左右位置的MySQL数据库。用户输入他们的邮政编码,我想在100英里的家中给他们6个随机位置。一切都很好,除了我不能将结果限制为6.它会给我所有< 100的结果。当我尝试下面的代码(添加for ($x=0...)位)时,我得到相同的结果,只有每一个重复6次,然后列出下一个。这是返回所有位置的相关代码。任何帮助都可以免除我把电脑扔到窗外。

$sql = "SELECT * FROM locations ORDER BY RAND()"; 
$result = mysql_query($sql, $dbase2);

while ($row = mysql_fetch_array($result))
    {

$city = $row['city']; 
$id= $row['id'];
$miles = calculateDistance($lat, $lon, $point2_lat,$point2_lon); 

  if ($miles < "100")
      { for ($x=0; $x<6; $x++){
       echo $city . " is about " . round($miles) . " miles away.<br />";
         };
      };           
  };
像我说的那样,为了这篇文章,我试着把它削减到重要的位置。如果我的例子中缺少重要的东西,请告诉我。

1 个答案:

答案 0 :(得分:2)

以下更改应该:

$count = 0;
while (($row = mysql_fetch_array($result)) && ($count < 6))
    {

    $city = $row['city']; 
    $id= $row['id'];
    $miles = calculateDistance($lat, $lon, $point2_lat,$point2_lon); 

    if ($miles < 100.0) {
       echo $city . " is about " . round($miles) . " miles away.<br />";
       $count = $count + 1;
      };           
  };

还有更优雅的方式......