2012-09-17 170 views
0

我有一個網站,用戶可以輸入/輸入多達5個興趣。現在,我想在表單字段中向用戶顯示用戶的興趣。這使他們能夠直接編輯它們。通過查詢結果循環

首先我要做的是在我的興趣表中查詢與用戶有關的數據行。然後,我使用mysqli_num_rows來確定我必須創建的變量。然後,我通過數組手動循環來創建每個變量。

但有一個問題,它不會循環到下一行數據。因此,例如$interest1將等於$interest2,而$interest3也會這樣做。等等等等。這不是我想要發生的事情。 $interest2, 3, 4, and 5應該都等於下一行數據。我可能做錯了什麼?

這裏是我的代碼:

$result2= mysqli_query($connect, $query2); 
    if (mysqli_num_rows($result2) != 0) { 

     if (mysqli_num_rows($result2) == 1) { 
     $row2= mysqli_fetch_array($result2); 
     $interest1= $row2['interest']; 
     } 
     else if (mysqli_num_rows($result2) == 2) { 
     $row2= mysqli_fetch_array($result2);    
     $interest1= $row2['interest']; 
     $interest2= $row2['interest'];   
     } 
     else if (mysqli_num_rows($result2) == 3) { 
     $row2= mysqli_fetch_array($result2);    
     $interest1= $row2['interest']; 
     $interest2= $row2['interest']; 
     $interest3= $row2['interest']; 
     } 
     else if (mysqli_num_rows($result2) == 4) { 
     $row2= mysqli_fetch_array($result2);    
     $interest1= $row2['interest']; 
     $interest2= $row2['interest']; 
     $interest3= $row2['interest']; 
     $interest4= $row2['interest'];  
     } 
     else if (mysqli_num_rows($result2) == 5) { 
     $row2= mysqli_fetch_array($result2);    
     $interest1= $row2['interest']; 
     $interest2= $row2['interest']; 
     $interest3= $row2['interest']; 
     $interest4= $row2['interest']; 
     $interest5= $row2['interest']; 
     } 

    } 

回答

0

我不清楚你想要做什麼。 但是,您的每個IF情況下的代碼重複從mysqli_num_rows($result2)獲得相同的值,每種情況的次數不同。

1

您將通過此要循環(如你所說),而且,你的結果存儲在一個陣列,你已經(基本)使用數組形式將其存儲在獨立的變量:

$result2 = mysqli_query($connect, $query2); 
$interests = array(); 
while ($result = mysqli_fetch_array($result2)) { 
    $interests[] = $result['interest']; 
} 
print_r($interests); 

根據您未設置值的問題,這是因爲您沒有循環遍歷行,而是每次訪問單個數組並將其設置爲不同的變量。

+0

嘛,怎麼會通過一個手動可能循環? – user1592953

+0

@ user1592953,手動循環? PHP保留了GOTO語法,但它不是非常有用並且完全過時,您爲什麼需要手動循環,這對您意味着什麼? –

1

試試這個

$result2= mysqli_query($connect, $query2); 
     while($row= mysqli_fetch_array($result2)) 
     { 
     $interest[]= $row['interest']; 

     } 

print_r($interest)//Array of itnerest