2013-02-20 76 views
0

預先感謝您提供的任何幫助。PHP:「While」循環爲變量的每次迭代返回相同的值

我執行的是返回像這樣的查詢:

route | busnumber 
    2   300 
    4   123 
    2   455 
12   934 

我的目標是要打印/呼應所有「busnumber」的名單是「路線」 = 2 我知道我可以做在數據庫上執行此操作的查詢,但我不想爲每條路徑運行此查詢。結果集實際上是一個主複雜查詢的一部分,所以我需要使用該數組完成我的目標。

該查詢可正常工作,並顯示相應的信息。我也將結果返回給一個數組。即...

$query=("SELECT * from foo") 
    $result=mysql_fetch_assoc($query); 

我當前的代碼如下所示(請注意我的意見):

mysql_data_seek($result,0); // because I'm previously iterating through $result 
while ($i2=mysql_fetch_assoc($result)) { 
$busnumber=$i2['busnumber']; 
$busroute=$i2['route']; 
echo "<div class='businfo'>"; 
if ($busroute='2'){   // I only want this to happen if $busroute=2 
echo "Current Route = $busroute</br>"; 
echo "Bus Number : $busnumber </br>"; 
} 
echo "</div>"; 
} 

什麼我得到,但是,它呼應了同樣的 '$ busroute'(2)但不同的「$ busnumber」每一行這樣:

Current Route = 2 
Bus Number : 194 
Current Route = 2 
Bus Number : 196 
Current Route = 2 
Bus Number : 2002 
Current Route = 2 
Bus Number : 2010 
Current Route = 2 
Bus Number : 2013 

的問題是,所有這些總線號都沒有路線2的一部分。這是總線號從所有路線的列表。如果$ routenumber = 2,我只希望它執行foreach循環。再次

感謝您的幫助:)

+1

再次改變'$ busroute = '2''到'$ busroute ==' 2'' – 2013-02-20 21:40:43

回答

3
if ($busroute='2'){ 

的問題是,你沒有檢查它是否等於2這裏,你要指定它等於2.改變它這個和你」不會有事的:

if ($busroute=='2'){ 
+0

wow..I不能相信我沒有聽清楚,但是這爲什麼我需要一套額外的眼睛!非常感謝。我很高興我的其他邏輯是正確的:) – dan 2013-02-20 21:48:59

0
$query = "SELECT * from foo"; 
$result = mysql_query($query); 


while($row = mysql_fetch_assoc($result)) { 
    if ($row['route'] == 2) { 
     // do your stuff 
    } 
} 
相關問題