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 :: Один запрос для вывода вместо нескольких

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
tovarz
Отправлено: 28 Марта, 2018 - 17:49:52
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




Здравствуйте.
Пример таблицы в phpmyadmin
id | title | group_id
1 | Кот | 0
2 |Рысь| 1
3 | Пес | 0
4 | Хомяк|0
5 | Лев | 1

Тут group_id=0 - домашние, group_id=1 - дикие
Хочу вывести на странице название групп (домашние/дикие), под каждой из которых выводятся животные, типа:
Домашние:
Кот, Пес, Хомяк
Дикие:
Рысь, Лев

Я так понимаю. надо сделать 2 запроса:
$ss=mysqli_query($sql, "SELECT * FROM table WHERE group_id=0");
while($rr=mysqli_fetch_array($ss)){
echo $rr['title'];
}
и
$ss=mysqli_query($sql, "SELECT * FROM table WHERE group_id=1");
while($rr=mysqli_fetch_array($ss)){
echo $rr['title'];
}

Можно ли обойтись одним запросом?
 
 Top
Строитель
Отправлено: 28 Марта, 2018 - 21:56:46
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




tovarz пишет:
Можно ли обойтись одним запросом?
Можно сначала сделать выборку, а потом средствами пхп "разложить" значения по своим местам.

Но если использовать PDO, то этот процесс можно автоматизировать. Я написал рабочий пример, вам нужно только прописать в начале скрипта параметры для доступа к вашей базе:
Спойлер (Отобразить)
В результате работы скрипта вы получите два отдельных массива - $homey (домашние животные) и $wild (дикие животные).
 
 Top
RizyaRU
Отправлено: 02 Июня, 2018 - 03:15:32
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июнь 2018  


Помог: 0 раз(а)




tovarz пишет:
Можно ли обойтись одним запросом?


CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `group_id`, GROUP_CONCAT(`title`) AS `title` FROM `phpmyadmin` GROUP BY `group_id`
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB