2012-01-25 15 views
0

所有, 我想寫一個sql語句是這樣的:搜索數組找到相應的價值

$sql = "Select id, rating from ratings"; 
$result = mysql_query($sql); 
$resultset = mysql_fetch_array($result) 

所以結果集將有數據庫結果(會有像50+結果有時)。我想要做的是基本上搜索數組中的值,如果它在id列中找到該值,它會回顯與該行關聯的評級。

這樣做的好方法是什麼?

謝謝!

+0

只使用其中... http://dev.mysql.com/doc/refman /5.0/en/select.html – Hannes

回答

1
foreach($resultset as $result){ 
    if($result['id'] == $searchId){ 
    echo $result['rating']."\r\n"; 
    } 
} 

其中您的$ searchId是您正在搜索的ID。

+0

如果你發現你的結果,這是很好的結束循環休息;) – matzino

+0

你的條件永遠是真的 – Hannes

+0

@matzino,我試圖回答被問到的問題。 – IsisCode

2

在sql語句中使用WHERE子句只返回所需的行。

$sql = "Select id, rating from ratings Where id = '<the id you want>'"; 
1

如果你只關心某個特定ID評級行中,有上獲取所有的人都沒有必要,改變你的SQL看起來像這樣:

$sql = "SELECT id, rating FROM ratings WHERE id = '$myID'"; 

哪裏$myID是您要提取的特定行的ID值。

編輯:如果你想獲取一個以上的ID,您可以像使用查詢:

$sql = "SELECT id, rating FROM ratings WHERE id IN (value1,value2,...) 
+0

我只想調用數據庫一次,因爲我想搜索一個50次的值。我想我會嘗試在一次調用中從數據庫獲取數組中的所有數據,而不是每次都檢查數據庫。我認爲這樣會更快。 – user1048676

+0

@ user1048676如果您想查找A值(具有給定ID的特定值),例如50次,您仍然希望在查詢中使用WHERE子句。 – Nobita

+0

謝謝,雖然我知道。我基本上有另一個foreach循環,有我需要看到存在於我的數據庫中的值。我不想對數據庫進行50次不同的調用來搜索新的ID。我想我只是得到所有的數據,然後通過數組循環。多次訪問數據庫可能會更快。 – user1048676