2012-04-13 65 views
2

所以我有一個查詢,雖然我的查詢可能返回20個結果,但我只希望它顯示前9個結果。有一個愚蠢的原因,我不只是限制查詢結果9,爲了這個目的,我需要知道如何停止的功能的同時,如果$ i達到9

代碼是

$i = 0; 
    while($array = mysql_fetch_array($queryresults) && $i <= '9') 
    { 
       echo $array['id']; 
       $i++; 
    } 

如何我是否會在第9次結果後停止輸出更多回聲?謝謝!

回答

4

把限制條件第一也將確保你只取9行,不是和10和一個丟棄,因爲&&被稱爲(如果第一部分是假的,它甚至不會看接下來的部分)。

$i = 0; 
while($i < 9 && $array = mysql_fetch_array($queryresults)){ 
    echo $array['id']; 
    $i += 1; 
} 

,或者如果你想成爲幻想:

$i = 9; 
while($i-- > 0 && $array = mysql_fetch_array($queryresults)){ 
    echo $array['id']; 
} 

但我覺得這是很容易出錯..

+0

謝謝。是的,我發現它也是這樣,但這是一個奇怪的情況,我必須這樣做:\我的老闆只需要這樣做就可以......所以......這樣做。感謝幫助! – Darius 2012-04-13 22:19:33

0

$i++需要在while循環中

你也應該有$i <= 9而不是$i <= '9',但它仍應該按原樣工作

0

'9' 必須是9

$i = 0; 
while($array = mysql_fetch_array($queryresults) && $i < 9){ 
    echo $array['id']; 
    $i += 1; 
} 
2
$i = 0; 
while($array = mysql_fetch_array($queryresults) && $i++ < 9) 
    echo $array['id']; 
} 

注:

  1. 沒有必要把9引號
  2. 可以增加-後比較由while$i++循環條件(雖然你不需要,你也可以在echo $array['id']之後的while循環體)。
  3. 小心!從零開始,你想要< 9而不是<= 9,否則你會得到10次循環迭代。

乾杯

+0

感謝您的注意! :) – Darius 2012-04-13 22:20:02

+1

不客氣,請隨時投票我的答案,如果它是有益的! ;) – Madbreaks 2012-04-13 22:21:41

相關問題