2013-05-02 54 views
0

我有一個查詢SELECT id, title, imagename FROM cat JOIN images ON id=id 我想只回顯每個類別的標題一次,然後3個圖像。然後和下一個類別一樣。每個ID的回顯類別名稱

表佈局:

Cat Table 
id title 

Images Table 
id imagename 

最後的結果應該是這樣的:

Title 

Imagename Imagename Imagename 

Title 

Imagename Imagename Imagename 

的查詢使用的foreach循環爲目標($this->results as $result) { echo $result->title; }等印刷..

而且我感興趣的是如果有其他方式(查詢?)獲得相同的結果。

回答

0

你需要保持當前標題的軌道,只有呼應標題時,它是從當前不同:

$title = ''; 
// loop 
    ... 
    if ($result->title !== $title) 
    { 
    echo $result->title; 
    $title = $result->title; 
    } 
    ... 
// end loop 

請注意,你需要ORDER BY title在查詢中,你可能會得到同樣的如果你不這樣做,稍後會再次標題。

+0

感謝您的回答。這看起來像一個工作方法,但我想知道是否有不同的方法(使用不同的查詢或其他)? – user1876234 2013-05-02 14:21:03

+0

@ user1876234不,你不能直接從mysql獲取樹狀結構。結果將永遠是一個一維記錄集。 – jeroen 2013-05-02 14:32:37

0

您可以添加一個變量,如$prevTitle,如果當前標題與前一個標題匹配,請不要回顯它。這將確保只有新的標題纔會被回顯,並且只有一次。當然,這將意味着你的對象將不得不進行排序/按職稱劃分爲了不具有像

TITLE1

TITLE1

標題2

TITLE1

結果

因爲這會迴應標題1兩次。