2011-04-14 175 views
0

在我的查詢中,我只想從id 1-3出現在結果中,而不是4-6。有沒有其他方法可以做到這一點?php mysql for循環

beautician database table: 
id_beautician name 
1    a 
2    b 
3    c 
4    d 
5    e 
6    f 

我試圖把下面的代碼在MySQL查詢

for($i=4; $i<=6; $i++) : 
    $q.$i = $db->query("SELECT * FROM beautician WHERE id_beautician='$i'"); 
    $r.$i = $q.$i->fetch_assoc(); 
    //echo $i; 
endfor; 

,但它給了我一個錯誤:

Object of class mysqli_result could not be converted to string

+1

WHERE id_beautician(4,5,6) – 2011-04-14 12:31:28

+0

請使用'$ db-> real_escape_string'或者至少將id轉換爲(int)。瞭解SQL注入! – cweiske 2011-04-14 12:47:34

+0

@cweiske:因爲有了一切設置。再次感謝 – tonoslfx 2011-04-14 12:57:59

回答

1

如果id不是按順序排列的,也可以按如下所示使用。

$query = $db->query("SELECT * FROM beautician WHERE id_beautician in (1,2,3)"); 
while ($row = $query->fetch_assoc()) 
{ 
    echo $row['id'] . ' = ' . $row['name'] . '<br/>'; 
} 

在查詢中使用IN有時會減慢執行速度,但可以有效地用於小型數據庫。

4

而不是做n查詢,修改SQL查詢僅匹配您需要的數據 - 例如:

$query = $db->query("SELECT * FROM beautician WHERE id_beautician <= 3"); 
while ($row = $query->fetch_assoc()) { 
    echo $row['id'] . ' = ' . $row['name'] . '<br/>'; 
}