2012-09-22 79 views
0

我有一個查詢從我的表中選擇所有用戶。然後我的while循環遍歷它。如果當前用戶與查詢行中的用戶是朋友,則跳過該行數據,如果不是,則顯示該行。在顯示3個成功的行後,如何讓while循環停止?要清楚的是,不僅可以查詢3行。同時使用循環計數器

這裏是我的代碼:

   $query_know="SELECT * FROM users ORDER BY RAND()"; 
       $result_know= mysqli_query($connect, $query_know); 
       $i= 0; 
        while ($row_know= mysqli_fetch_array($result_know)) { 
         $query_friend_test= "SELECT * FROM relations WHERE user1= '".$user_id."' AND user2= '".$row_know['user_id']."'"; 
         $result_friend_test= mysqli_query($connect, $query_friend_test); 
          if (mysqli_num_rows($result_friend_test) > 0) { 
           continue; 
          } 
          else { 
      ?> 

      <div class="user-mini"> 
       <div class="user-mini-left"> 
       </div> 
       <div class="user-mini-right"> 
         <div class="story-user-mini"> 
          <p><a href="<?php echo "profile.php?id=" . $row_know['user_id']; ?>"> <?php echo $row_know['fname'] . " " . $row_know['lname']; ?> </a></p> 
         </div> 
         <div class="story-content-mini"> 
          <p> Ohio University </p> 
         </div> 
       </div> 
      </div> 

      <?php 
      } 
      } 

      ?> 

回答

1

無論出於何種$n的行數要顯示:

for($i = 0; $i < $n; $i++) { 
    $row_know = mysqli_fetch_array($result_know); 

    ... rest of code ... 

} 

把當在for循環,這意味着你做它只是從$i = 0$i < $n,當你使用一個while循環,你會一直這樣做,直到你在某處發出break聲明。如果行數是確定的,則可以使用for

編輯:我的意思是說for,而不是foreach

+0

這對'foreach'循環的不正確的語法內的$i++的增量。 –

+1

現在它的正確:) –

0

您可以使用break退出while循環。

0

做在else部分這一條件檢查和其他{}

else if($i <=2) { 

     ?> 

     <div class="user-mini"> 
      <div class="user-mini-left"> 
      </div> 
      <div class="user-mini-right"> 
        <div class="story-user-mini"> 
         <p><a href="<?php echo "profile.php?id=" . $row_know['user_id']; ?>"> <?php echo $row_know['fname'] . " " . $row_know['lname']; ?> </a></p> 
        </div> 
        <div class="story-content-mini"> 
         <p> Ohio University </p> 
        </div> 
      </div> 
     </div> 
     <?php $i++; 
     } 
     }