2016-05-30 284 views
0

我是新手。我早些時候詢問a question有關從數據庫中檢索我需要的數據的重複數據,例如每次帶走時每次重複打開的時間(參見下圖);我收到了非常有用的評論。該評論表明我的while循環導致了我的查詢結果重複問題,因爲它重寫了我的數據。替代while while循環

duplication example

看着我的代碼和工作了之後,while循環是造成這個問題(因爲我有幾個),並與他們玩耍明白我的問題,我現在好奇知道循環可以用於替換或替代一個while循環。

$rest_query = "SELECT Resturant_ID FROM Rest_Details"; 
    $res_results = $dbc->query($rest_query); 

    //while($row_results = $res_results->fetch_assoc()){ 
    $row_results = $res_results->fetch_assoc();{ 
    { 
     $rests = $row_results['Resturant_ID']; 
    } 
    } 

上面是我刪除的while循環之一,我知道我需要一個循環來獲取所需的所有信息。我不知道我需要重複的次數,因此for循環沒有幫助。

只是想獲得更好的理解,因爲我建立這個網站來教我自己。

+0

考慮使用像Zend_Db這樣的抽象層。 –

+0

我不認爲問題是你的while循環,但你的SQL。或者,如果您想避免連接/聚合,則需要重新考慮您提取數據的方式。也許你使用ActiveRecords,或者只是在while循環中填充數組。 –

+0

如何清理數據以刪除重複項,並使數據庫不具有他們在第一個地方? –

回答

3
"SELECT DISTINCT my_column_with_duplicates FROM Rest_Details" 

然後

while($row_results = $res_results->fetch_assoc()) 

會工作得很好。

還有其他的方法,像$ res_results-> fetchAll()來獲得數組中的所有結果,然後使用foreach循環。只是一個想法。

+0

看着圖片,我不認爲'DISTINCT'就是這裏的答案。 –

+1

我猜在不同的地方有各種各樣的SQL問題; _this_問題中的查詢可以通過'DISTINCT'完善。一心一意。 – alexis

+0

它部分工作。但確實有助於解決這個問題,謝謝 – user6394840