php count определенных авторов пост в таблице - PullRequest
0 голосов
/ 16 сентября 2011

Вероятно, довольно просто, но у меня есть несколько проблем.

Все, что я пытаюсь сделать, это "посчитать", сколько сообщений "определенный" "автор" имеет из определенной "категории"

Настройка стола:

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"

Джим (2 сообщения в категории 9)

или если $ author = "josh"

Джош (1 сообщение в категории 9)

Заранее спасибо !!

Вот что я использовал, спасибо !!

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

Ответы [ 2 ]

2 голосов
/ 16 сентября 2011

Вы можете создать многомерный массив, в котором в качестве индекса указан автор, а индекс каждого автора может быть другим массивом категорий и количеством сообщений.

$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 голос
/ 16 сентября 2011

Вы можете сделать это только по SQL-запросу, не рассчитывая foreach.не проверенный вами, вы можете сделать так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...