2011-09-16 47 views
0

可能很簡單,但我有幾個問題。php count某些作者張貼在表

所有我想要做的是「數」 a「一定」,「作家多少職位」具有一定的「類別」

表設置:

id | author | category | full | short 

1  jim  2,3  ...  ... 
2  josh  5,9  ...  ... 
3  jim  3,9  ...  ... 
4  jim  1,9  ...  ... 
5  josh  3,4  ...  ... 
6  trina  2  ...  ... 

我知道如何查詢..

但是,我怎麼編寫一個「的foreach」

算多少職位,如果我查詢(例如查詢)

WHERE category = '9' AND author = "$author" 

所以它會告訴我該作者,這也沒什麼大不了的職位,但我怎麼會顯示:

如果在$ author =「吉姆」

吉姆(2類職位9)

,或者$筆者= 「喬希」

喬希(1篇文章在第9類)

在此先感謝!

這是我用過的,謝謝!

<?php echo $row_Recordset1['author']; echo '(' . $totalRows_Recordset1 . ')'; ?> 
+0

做這樣

(未測試)

SELECT * FROM table_name WHERE category LIKE '%,9' OR category LIKE '9,%' OR category LIKE '9' OR category LIKE '%,9,%' 

那麼你可以直接指望它這是功課?如果是這樣,我們就這樣標記。 –

回答

1

您可以通過SQL查詢唯一沒有的foreach計算做。沒有測試通過,你可以通過

mysql_num_rows 
2

您可以創建一個以作者爲索引的多維數組,並且每個作者索引可以是另一個類別數組和多少個帖子。

$postCounts = array(); 
foreach($results as $result) { 
    if (!array_key_exists($result['author'], $postCounts)) { 
     $postCounts[$result['author']] = array(); 
    } 

    if (!array_key_exists[$result['category'], $postCounts[$result['author']])) { 
     $postCounts[$result['author']][$result['category'] = 1; // first post seen 
    } else { 
     $postCounts[$result['author']][$result['category'] += 1; // increment count 
    } 
} 

從您的分類結果,雖然好看,你可能需要用逗號爆炸並添加第二array_key_exists在一個循環阻塞。但是,這可以做你想在PHP的foreach。

最終你會得到一個數組是這樣的:

$postCounts = Array(
    'jim' => Array(9 => 2) // 2 posts in category 9 for jim 
    'josh' => Array(9 => 1) // 1 post in category 9 for josh 
    'bob' => Array(9 => 3, 2 => 5) // 3 posts in category 9, 5 posts in category 2. 
)