За последние 24 часа нас посетили 17374 программиста и 1720 роботов. Сейчас ищут 982 программиста ...

Помогите пожалуйста ... Нужно из БД помимо списка вывести ко

Тема в разделе "PHP и базы данных", создана пользователем D0Gmatist, 20 янв 2013.

  1. D0Gmatist

    D0Gmatist Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    60
    Симпатии:
    0
    Помогите пожалуйста ...
    Нужно из БД помимо списка вывести количество одинаковых записей около самой записи '.$genre.' (32)

    Код (Text):
    1. $genres .= '<a href="/genre/'.urlencode(str_replace(' ','_',$genre)).'" title="'.$genre.'">'.$genre.'</a>';
    к примеру
    Ужасы (25)
    Комедия (32)
    Боевик (27)
    и т.д.

    Таблица содержит
    id - ИД поля
    news_id - ИД поля в другой таблице
    genre - запись (в данном случае Жанр)

    Код (Text):
    1. $rr = $db->query('SELECT DISTINCT genre FROM '.PREFIX .'_dop_genre ORDER BY genre');
    2.  
    3. while ($row = $db->get_row($rr))
    4. {
    5.     $genresList = explode('|',$row['genre']);
    6.         $genres = '';
    7.         $cntgenres = count($genresList);
    8.         $ai = 0;
    9.    
    10.         foreach ($genresList as $genre)
    11.         {
    12.             $ai++;
    13.             $genre = trim($genre);
    14.             $genres .= '<a href="/genre/'.urlencode(str_replace(' ','_',$genre)).'" title="'.$genre.'">'.$genre.'</a>';
    15.             if ($ai<$cntgenres) $genres .= '';
    16.         }
    17.         unset($genresList);
    18.            
    19.         if (!empty($row['genre'])) {
    20.             $genreall= $genres;
    21.          
    22.         }
    23.          
    24. $o_block .= ''.$genreall.'';
    25.  
    26. };
    27.  
    28. echo '<DIV>'.$o_block.'</DIV>';
     
  2. D0Gmatist

    D0Gmatist Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    60
    Симпатии:
    0
    Re: Помогите пожалуйста ... Нужно из БД помимо списка вывест

    Что ни кто и не поможет ?
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Помогите пожалуйста ... Нужно из БД помимо списка вывест

    SELECT genre, count(*) AS cnt
    FROM '.PREFIX .'_dop_genre
    GROUP BY genre
    ORDER BY genre
     
  4. D0Gmatist

    D0Gmatist Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    60
    Симпатии:
    0
    Re: Помогите пожалуйста ... Нужно из БД помимо списка вывест

    И всё ? Больше ничего не надо ?
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Помогите пожалуйста ... Нужно из БД помимо списка вывест

    а что еще?
     
  6. D0Gmatist

    D0Gmatist Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    60
    Симпатии:
    0
    Re: Помогите пожалуйста ... Нужно из БД помимо списка вывест

    Спасибо .. уже разобрался
    Код (Text):
    1. $rr = $db->query('SELECT DISTINCT genre, count(*) AS count FROM '.PREFIX .'_dop_genre GROUP BY genre ORDER BY genre');
    2.  
    3. while ($row = $db->get_row($rr))
    4. {
    5.     $counts = $row['count'];
    6.  
    7.     $genresList = explode('|',$row['genre']);
    8.         $genres = '';
    9.         $cntgenres = count($genresList);
    10.         $ai = 0;
    11.    
    12.         foreach ($genresList as $genre)
    13.         {
    14.             $ai++;
    15.             $genre = trim($genre);
    16.             $genres .= '<a href="/genre/'.urlencode(str_replace(' ','_',$genre)).'" title="'.$genre.'"><div class="menu_pod_item_url_average">'.$genre.' <i>('.$counts.')</i></div></a>';
    17.             if ($ai<$cntgenres) $genres .= '';
    18.         }
    19.         unset($genresList);
    20.            
    21.         if (!empty($row['genre'])) {
    22.             $genreall= $genres;
    23.          
    24.         }
    25.          
    26. $o_block .= ''.$genreall.'';
    27.  
    28. };
    29.  
    30. echo '<DIV>'.$o_block.'</DIV>';
    Надо было заменить на это
    Код (Text):
    1. $rr = $db->query('SELECT DISTINCT genre, count(*) AS count FROM '.PREFIX .'_dop_genre GROUP BY genre ORDER BY genre');
    И дописать
    1)
    Код (Text):
    1. $counts = $row['count'];
    2)
    Код (Text):
    1. .$counts.
     
  7. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Помогите пожалуйста ... Нужно из БД помимо списка вывест

    DISTINCT зачем? есть же group by
     
  8. D0Gmatist

    D0Gmatist Активный пользователь

    С нами с:
    3 июн 2012
    Сообщения:
    60
    Симпатии:
    0
    Re: Помогите пожалуйста ... Нужно из БД помимо списка вывест

    Ну в принципе да )