2012-08-14 88 views
0

繞環我有一個通過表收集,涉及到搜索詞的所有行運行while循環。問題是我的數據庫中有多行包含完全相同的信息,所以當while循環遍歷時它會發布重複的信息。我試圖找到一種方法來防止while循環顯示重複的情況。我正在考慮圍繞回顯變量運行if語句,但我不確定要檢查哪些內容以防止顯示重複信息。這是下面的代碼。while循環和防止重複信息通過

$search = mysql_query("SELECT `primary_id`, `person_requested`, `likes` FROM 

`requests` WHERE `person_requested` LIKE '%$search_term%'"); 



while ($results_row = mysql_fetch_assoc($search)) 

{ 

$persons = $results_row['person_requested']; 

echo $persons; 

} 
+0

在查詢中做'distinct person_requested' – 2012-08-14 17:56:20

+0

您應該使用DISTINCT關鍵字在數據庫層上解決它。這就是它的目的。 – Tadeck 2012-08-14 17:56:21

+0

你的表格結構是什麼? – Jocelyn 2012-08-14 18:00:39

回答

1

使用DISTINCT在你的查詢返回不同的記錄:

$search = mysql_query("SELECT DISTINCT `person_requested`, `likes` 
       FROM `requests` WHERE `person_requested` LIKE '%$search_term%'"); 
+0

如果person_requested對於不同的喜歡有多個行,它可能仍會返回重複 – 2012-08-14 17:58:28

+0

其實喜歡的都是一樣的,但primary_id對於每一個都是不同的。 – jason328 2012-08-14 18:02:16

+0

@ jason328:你的表結構是什麼? – Jocelyn 2012-08-14 18:03:27

0

嘗試調整SQL只返回你需要的結果。您可以嘗試使用DISTINCT來消除重複的結果。