可能很简单,但我遇到了一些问题。
我所要做的就是“统计”“特定”“作者”来自某个“类别”的帖子数量
表格设置:
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 =“jim”
Jim(第9类中有2个帖子)
或者如果$ author =“josh”
Josh(第9类中的1篇帖子)
提前致谢!!
这是我用的,谢谢!
<?php echo $row_Recordset1['author']; echo '(' . $totalRows_Recordset1 . ')'; ?>
答案 0 :(得分: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.
)
答案 1 :(得分:1)
你可以通过sql查询来做到这一点,只是没有foreach来计算。未经您测试可以这样做
(未经测试)
SELECT * FROM table_name WHERE category LIKE '%,9' OR category LIKE '9,%' OR category LIKE '9' OR category LIKE '%,9,%'
然后你可以通过
直接计算它mysql_num_rows