Приветствую, помогите разобраться, есть массив: Код (PHP): Array ( [0] => Array ( [id] => 1 [title] => 01 [text] => обивочный материал, призванный создать эффект натуральной замши. Благодаря своим качествам и всевозможным расцветкам микрофибра применяется при производстве качественной мягкой мебели и годится для любого интерьера. С годами на ткани не образуются проплешины. [active] => 0 [casing_folder] => microfibra [photo_small] => 1l [photo] => 1 [casing_cat] => 4 ) [1] => Array ( [id] => 2 [title] => 03 [text] => обивочный материал, призванный создать эффект натуральной замши. Благодаря своим качествам и всевозможным расцветкам микрофибра применяется при производстве качественной мягкой мебели и годится для любого интерьера. С годами на ткани не образуются проплешины. [active] => 0 [casing_folder] => microfibra [photo_small] => 3l [photo] => 3 [casing_cat] => 4 ) [2] => Array ( [id] => 3 [title] => 04 [text] => обивочный материал, призванный создать эффект натуральной замши. Благодаря своим качествам и всевозможным расцветкам микрофибра применяется при производстве качественной мягкой мебели и годится для любого интерьера. С годами на ткани не образуются проплешины. [active] => 0 [casing_folder] => microfibra [photo_small] => 4l [photo] => 4 [casing_cat] => 3 ) [3] => Array ( [id] => 4 [title] => 05 [text] => обивочный материал, призванный создать эффект натуральной замши. Благодаря своим качествам и всевозможным расцветкам микрофибра применяется при производстве качественной мягкой мебели и годится для любого интерьера. С годами на ткани не образуются проплешины. [active] => 0 [casing_folder] => microfibra [photo_small] => 5l [photo] => 5 [casing_cat] => 2 ) [4] => Array ( [id] => 5 [title] => 06 [text] => обивочный материал, призванный создать эффект натуральной замши. Благодаря своим качествам и всевозможным расцветкам микрофибра применяется при производстве качественной мягкой мебели и годится для любого интерьера. С годами на ткани не образуются проплешины. [active] => 0 [casing_folder] => microfibra [photo_small] => 6l [photo] => 6 [casing_cat] => 1 ) Получился он вот так : Код (PHP): $res_casing_cat = $mysqli->query("SELECT * FROM casing_cat JOIN casing ON casing_cat.id = casing.casing_cat"); if ($res_casing_cat->num_rows > 0) { for ($i=0; $i<$res_casing_cat->num_rows; $i++) { $row_casing_cat[] = $mysqli->assoc($res_casing_cat); } $smarty->assign("row_casing_cat", $row_casing_cat); } И выводится вот так (smarty): Код (PHP): {foreach $row_casing_cat as $casing_cat} {$casing_cat.photo_small} {/foreach} Мне нужно что-бы значения из БД выводились в разные таблицы по ключу casing_cat. Как можно разбить получившийся из этого кода массив на несколько по ключу casing_cat или может можно сделать это проще (изменить SQL запрос или еще как-то) ? P.S. Проблема именно вывести все это дело через smarty, сформировать правильно php код для передачи в шаблон. PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Решение А 1. Использовать в запросе сортировку по полю, по которому хочешь разбивку. 2. При выводе обнаруживать факт смены значения и в этот момент выводить заголовок или конец таблицы + начало новой таблицы. Решение Б 1. При считывании строк вместо $rows[] = … сохранять как $rows[ $row['category'] ][] = … получишь дополнительное измерение в массиве 2. При выводе использовать двойной цикл: сначала по категориям, затем по записям внутри категории Мысль понятна? Только давай без "покажите на примере"
Двойным циклом пробовал, возникла проблема со смарти, он мне в каждую категорию выводил все записи из таблицы, включая те что в других категориях. А как можно обнаружить смену значения в smarty? То есть в tpl файле.
наверное надо разобраться с проблемой. или это смарти плохой? попробуй сначала на чистом php с echo. как получится, переведешь на язык смарти. Добавлено спустя 1 минуту 48 секунд: с помощью if, ёмана! старайся лучше.