Jump to content
  • 0

Цикл в цикле и цикл в цикле


haZe
 Share

Question

Добрый день!

Осуществляю две выборки из двух таблиц. В одной хранятся данные о музыкальном альбоме, в другой информация о треках. Потом все это циклирую, перевожу в немножко другой вид и отправляю в шаблон. Шаблонизатор Smarty. Далее в шаблоне циклом пытаюсь вывесли все это на экран. Но не выходит. Выглядеть это должно как:

Альбом№1(описание)
-Трек 1
-Трек 2
-Трек n
Альбом№n
-Трек n

Выходит так, что выводятся только треки первого альбома. Если все это выводить из файла обработчика, то все работает правильно, а вот в смарти нормально не циклируется. Подскажите пожалуйста, как решить эту проблему. Далее привожу код. РНР:

$select = mysql_query("SELECT * FROM `audio_albums`");

while($sel = mysql_fetch_array($select)){

$id = $sel['a_album_id'];
$select2 = mysql_query("SELECT * FROM `audio_tracks` WHERE `album_id`='".$sel['a_album_id']."'");
while ($sel2 = mysql_fetch_array($select2)){

$tracks[$id][] = $sel2;
}
$albums[] = $sel;
}

$smarty->assign("tracks", $tracks);
$smarty->assign("albums", $albums);
$smarty->display('discography.tpl');

Код шаблонаl:

{foreach from=$albums item=albums}
{$albums.name}<br>
{assign var="name" value=$albums.a_album_id}
{foreach from=$tracks.$name item=tracks}
--{$tracks.name}<br>
{/foreach}
{assign var="tracks" value=""}
{/foreach}

Заранее благодарю за потенциальные подсказки!

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
Добрый день!

Осуществляю две выборки из двух таблиц. В одной хранятся данные о музыкальном альбоме, в другой информация о треках. Потом все это циклирую, перевожу в немножко другой вид и отправляю в шаблон. Шаблонизатор Smarty. Далее в шаблоне циклом пытаюсь вывесли все это на экран. Но не выходит. Выглядеть это должно как:

Самое первое.

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

А потом уже в PHP расставить все на свои места. Ключ массива альбомов должен равняться ID данного альбома, потом проходишь по массиву треков и наполняешь каждому элементу массива альбомов массив треков, которые относятся к данному альбому.

А потом скармливай готовый двумерный массив в смарти.

Да, и в смарти есть замечательная штука под названием {debug} :lol:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy