Показать все записи для поля MySQL и подсчитать, сколько раз они появляются на определенную дату - PullRequest
0 голосов
/ 10 августа 2011

Мой желаемый результат - отобразить, сколько раз каждое видео (заголовок) просматривалось за определенные даты, собрав все заголовки, которые отображаются в таблице, и подсчитать, сколько раз этот заголовок записан для определенных лет / месяцев.

Работает, однако не отображается правильно.

Вместо

НАЗВАНИЕ A - 2НАЗВАНИЕ Б - 6НАЗВАНИЕ С - 4НАЗВАНИЕ D - 0

...

Отображается так

НАЗВАНИЕ A - 2- 6- 4TITLE BTITLECTITLED

мой код:

    //get report
    if ($_GET['report'] == "custom") {          //custom date report
        $month = $_GET['month'];
        $year = $_GET['year'];

            $result2 = mysql_query("SELECT DISTINCT title AS displaytitle 
FROM user_history GROUP by title");

        if ($_GET['month'] == "") {

            $result = mysql_query("SELECT title, COUNT(id) FROM user_history
 WHERE year(date) = '$year' GROUP BY title");

        } else {

            $result = mysql_query("SELECT title, COUNT(id) FROM user_history
 WHERE year(date) = '$year' AND month(date) = '$month' GROUP BY title");
        }


            while($row2 = mysql_fetch_array($result2)) {
            $new_title = $row2['displaytitle'];


            echo $row2['displaytitle'];


                while($row = mysql_fetch_array($result)) {
                    echo ' - ' . $row['COUNT(id)'] . '<br />';
                }

    }   

Может кто-нибудь предложить решение, чтобы счетчик отображался рядом с заголовком?Спасибо!

1 Ответ

0 голосов
/ 10 августа 2011

Ваш код для отображения заголовка находится за пределами цикла. Если вы хотите, чтобы заголовок печатался рядом с каждым значением, поместите его в циклическую печать каждого значения.

if ($_GET['report'] == "custom") {          //custom date report

    $sql = "
    SELECT
      titles.title,
      COUNT(DISTINCT history.id) AS `count`
    FROM
      user_history titles
    LEFT OUTER JOIN
      user_history history
    ON
      titles.title = history.title
    ";

    if (!empty($_GET['month']) && !empty($_GET['year'])) {
      $sql .= "AND YEAR(history.date) = " . (int)$_GET['year'] . " AND MONTH(history.date) = " . (int)$_GET['month'];
    } else if (!empty($_GET['year'])) {
      $sql .= "AND YEAR(history.date) = " . (int)$_GET['year'];
    }

    $sql .= "
    GROUP BY 
      titles.title
    ORDER BY 
      titles.title
    ";

    $result = mysql_query($sql);
    while ($row = mysql_fetch_array($result)) {
      echo $row['title'] . ' - ' . $row['count'] . '<br />';
    }

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