Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Свести две функции в один запрос
Два запроса сильно напрягают, хотелось бы избавиться от них, тем более что таких еще будет 4 одинаковых но с другим названием функции (вид останется тот-же).
Возможно ли объединение?
Строитель
Отправлено: 20 Мая, 2018 - 11:12:19
Участник
Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 74 раз(а)
Lolya, у вас ведь по сути меняется только название таблицы, из которой идёт выборка? Тогда можно описать всего одну функцию, добавив в сигнатуру один аргумент - в этот аргумент будет передаваться текущее название таблицы. В результате на выходе вы получите массив значений выборки из нескольких таблиц. Пример:
Добавьте остальные названия таблиц в массив с названиями таблиц.
Lolya
Отправлено: 21 Мая, 2018 - 20:15:19
Гость
Покинул форум
Сообщений всего: 69
Дата рег-ции: Май 2018
Помог: 2 раз(а)
Строитель пишет:
Lolya, у вас ведь по сути меняется только название таблицы, из которой идёт выборка? Тогда можно описать всего одну функцию, добавив в сигнатуру один аргумент - в этот аргумент будет передаваться текущее название таблицы. В результате на выходе вы получите массив значений выборки из нескольких таблиц. Пример:
Добавьте остальные названия таблиц в массив с названиями таблиц.
Спасибо. А теперь вопрос дополнительный:
как теперь расписывать функции для запроса?
Строитель
Отправлено: 21 Мая, 2018 - 20:41:39
Участник
Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 74 раз(а)
Lolya пишет:
как теперь расписывать функции для запроса?
Если запросы к БД одинаковые (как выше было написано), то ничего больше расписывать не нужно. Всё что надо сделать, это заполнить массив $table_names названиями таблиц, из которых будет выборка, по такому принципу:
$table_names=['categories','incategories'/*и т.д. через запятую*/];
Lolya
Отправлено: 21 Мая, 2018 - 21:09:34
Гость
Покинул форум
Сообщений всего: 69
Дата рег-ции: Май 2018
Помог: 2 раз(а)
Строитель пишет:
Lolya пишет:
как теперь расписывать функции для запроса?
Если запросы к БД одинаковые (как выше было написано), то ничего больше расписывать не нужно. Всё что надо сделать, это заполнить массив $table_names названиями таблиц, из которых будет выборка, по такому принципу:
Скорость *вроде как быстрее стала, но один черт запросов два на страницу как и было.
Мне надо вывести картинки с названием и id категории и подкатегории на странице, так что если одну уберу (какую-то), то будет бить ошибку и ругаться на нехватающую функцию.
Проблема...
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.