php mysql обход результата запроса по группировкам #727284


#0 by Помогите
Как это сделать на PHP?
#1 by Wobland
а как запрос выглядит?
#2 by Помогите
Я не в курсе
#3 by Wobland
а что собираешься делать при обходе?
#4 by Помогите
Не понял смысла вопроса
#5 by Wobland
на зачем тебе обход результата запроса по группировкам?
#6 by Помогите
Для вывода результатов запроса на экран.
#7 by Wobland
не зная даже имена полей?
#8 by Помогите
зачем не зная имена полей?
#9 by Wobland
ну ты ж не в курсе
#10 by Помогите
это не про имена полей
#11 by Помогите
Если своими словами, то запрос и алгоритм такие: "Выбрать Номер, Дата из Документы Сгруппировать по Дате" ВыборкаПоДате = РезультатЗапроса.Выбрать по группировке (Дата); Пока ВыборкаПоДате.Следующий Цикл {   Вывести (ВыборкаПоДате.Дата);   ВыборкаПоНомеру = ВыборкаПоДате.Выбрать   Пока ВыборкаПоНомеру .Следующий Цикл   {     Вывести (ВыборкаПоНомеру.Номер);   } }
#12 by Помогите
Результат должен получиться примерно такой: По дате 01.01.1980 такие номера:   Док-00001   Док-00002   Док-00003 По дате 02.01.1980 такие номера:   Док-00004   Док-00005 По дате 03.01.1980 такие номера:   Док-00006
#13 by Wobland
вот я и спрашиваю: какой аналог ЭТОГОВ в mysql?
#14 by Помогите
да, я видел
#15 by sda553
group by. ... with rollup
#16 by Помогите
Это добавит общий итог. Не то.
#17 by ASV
в запросе сортировать по дате при выводе сравнивать дату с предыдущим значением, если изменилась выводить заголовок
#18 by Поpyчик-4
В mysql нет ЭТОГОВ.
#19 by Помогите
Это понятно. Но нужно чтобы было красиво, как в 1С
#20 by Поpyчик-4
Обычно в запросе сортируют по какому-то полю, потом при обходе выборки делают хэш-массив со значениями этого поля phpbb2 function make_jumpbox($action, $match_forum_id = 0) {     global $db, $userdata, $template, $nav_links, $phpEx, $lang;     $sql = "SELECT c.cat_title, f.*         FROM " . FORUMS_TABLE . " f, " . CATEGORIES_TABLE . " c         WHERE c.cat_id = f.cat_id         AND f.auth_view <= " . AUTH_REG . "         ORDER BY c.cat_order, f.forum_order";     if ( !($result = $db->sql_query($sql, false, true)) )     {         message_die(GENERAL_ERROR, "Couldn't obtain categories/forums information.", "", __LINE__, __FILE__, $sql);     }     $jb_rows = array;     $last_cat_id = false;     while ( $row = $db->sql_fetchrow($result) )     {         if ( $last_cat_id !== $row['cat_id'] )         {             $last_cat_id = $row['cat_id'];             $jb_rows[] = array;         }         $jb_rows[count($jb_rows) - 1][] = $row;     }     if ( empty($jb_rows) )     {         return;     }     $template->set_filenames(array(         'jumpbox' => 'jumpbox.tpl')     );     $template->assign_vars(array(         'L_GO' => $lang['Go'],         'L_JUMP_TO' => $lang['Jump_to'],         'L_SELECT_FORUM' => $lang['Select_forum'],         'S_SELECT_FORUM' => POST_FORUM_URL,         'S_JUMPBOX_ACTION' => append_sid($action),     ));     $last_cat_id = false;     foreach ($jb_rows as $k => $cat)     {         if ( empty($cat) )         {             continue;         }         $template->assign_block_vars('jb_cat', array(             'CAT_TITLE' => $cat[0]['cat_title'],         ));         foreach ($cat as $l => $forum)         {             $template->assign_block_vars('jb_cat.jb_forum', array(                 'FORUM_ID' => $forum['forum_id'],                 'FORUM_SEL' => $match_forum_id && $match_forum_id == $forum['forum_id'] ? ' selected="selected" ' : '',                 'FORUM_TITLE' => $forum['forum_name'],             ));             //             // Add an array to $nav_links for the Mozilla navigation bar.             // 'chapter' and 'forum' can create multiple items, therefore we are using a nested array.             //             $nav_links['chapter forum'][$forum['forum_id']] = array (                 'url' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=" . $forum['forum_id']),                 'title' => $forum['forum_name'],             );         }     }     $template->assign_var_from_handle('JUMPBOX', 'jumpbox');     return; }
#21 by Поpyчик-4
Красиво, да? Это примерно твоя задача.
#22 by Помогите
>> Обычно в запросе сортируют по какому-то полю, потом при обходе выборки делают хэш-массив со значениями этого поля Спасибо! Только пример к ответу больше подходит, не красиво. Ну да ладно.
#23 by ASV
SELECT DISTINCT  1 as u, dt, dtas kod  FROM tabl UNION (SELECT 2 as u, dt,kod FROM tabl LIMIT 0,200) order BY dt, u
#24 by Поpyчик-4
В phpbb 2 и 3 запросы с объединениями таблиц по каким-то причинам почти не применяются. Вероятно, из-за тяжести исполнения. Впрочем, потом гляну скрипты.
#25 by ASV
правильно в будет выполнение 2х запросов вместо одного. результаты все равно потом обрабатывать. только считает что это красиво
#26 by Помогите
Это зачем? Можно так: SELECT dt, kod FROM tabl GROUP BY dt, kod WITH ROLLUP
#27 by Помогите
Не ври, я так не считаю
#28 by Поpyчик-4
Сейчас прошвырнулся по скриптам phpBB3. Нашёл только два упоминания UNION в одном административном скрипте, то есть редко используемом в работе.
#29 by ASV
теперь интересно посмотреть код php, чтобы вывести итоги перед значениями, как
#30 by Помогите
по 23, аналогично.
#31 by Asmody
а СКД на php нету часом?
#32 by Помогите
задом наперед выбирать строки.
#33 by stix2010
спецы 77 тебе подскажут, там в ТЗ что только не вытворяют, array вместо ТЗ и вперед
#34 by Помогите
Похоже лучше чем ничего не придумали.
Тэги: Веб-мастеринг
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С