2013-03-31 2 views
0

У меня есть база данных, которая содержит информацию о ТВ серии, как это:Группа эпизодов по сезонам от дб

name - Californication 
episode - 3 
season - 6 

name - Californication 
episode - 4 
season - 6 
.. 
name - Californication 
episode - 1 
season - 7 

Я хочу, чтобы получить выход так:

Season 6: 
episode 3 
episode 4 

Season 7: 
episode 1 
episode 2 
.... 

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

+0

Что удалось? Где запрос, имена таблиц, имена столбцов и т. Д.? –

+0

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

+0

Это была довольно страшная идея, которая подсчитала количество сезонов, а затем запустила несколько запросов в цикле, поэтому я считаю, что все будет лучше: D – Treat

ответ

0

Я бы сделал всю группу в PHP.

$seasons = array(); 
while ($row = $result->fetch()) { 
    if (!isset($seasons[$row->season]) { 
     $seasons[$row->season] = array(); 
    } 
    $seasons[$row->season][] = $row->episode; 
} 

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

+0

, пробовал это так '$ seasons = array(); в то время как ($ строка = mysql_fetch_assoc ($ к)) { если (! Исеть ($ сезонов [$ строки [ 'сезона']])) { $ сезонов [$ строки [ 'сезона']] = массив (); } $ seasons [$ row ['season']] [] = $ row ['episode']; print_r ($ сезоны); ' получил некоторые довольно неприятный вывод ' Массив ( [6] => Массив ( [0] => 11 ) ) Массив ( [6 ] => Массив ( [0] => 11 [1] => 10 ) ) Массив ( [6] => Массив ( [0] => 11 [1] => 10 [2] => 9 ) ) ' , что я сделал не так? – Treat

+0

@Treat выглядит хорошо для меня, но разве вы не хотите 'print_r' за пределами цикла while? –

+0

ну это 6AM: D Спасибо, это было то, что я искал :) – Treat

Смежные вопросы