Добрий день. Я новичок в PHP и сейчас читаю книгу "Разработка веб-приложений с помощью РНР и MySQL" в конце книги есть примеры приложений, а именно сохранения в закладки url адресов. Базовий код есть в книжке, а также предложения по усовершенствованию. Так вот необходимо сделать группировку закладок по темам (Спорт, Погода и так далее). Присвоение теми url адресу при добавлении в закладки я сделал. Теперь мне нужно вывести теми в таблице вместе с закладками. Есть таблица url адресов bookmark и таблица тем topic Как я вижу логику: 1. Извлечь из БД перечень тем по конкретному пользователю и поместить их в ассоциативный массив в виде ключей. 2. Извлечь из БД url адреса по темах из пункта №1 и поместить их в ассоциативный массив в виде значений. 3. В HTML таблице внешним циклом выводить теми, а внутренним url адреса. Трудности возникают во 2 пункте. Использую mysqli. Впервые пишу на форуме так что извините за невнятное объяснение.
@Prystapchuk Serhii, у вас в структуре темы общие, привязка к пользователям (кстати, почему нет нормализации?) идет по самим закладкам. Поэтому темы выбирайте все, а закладки уже конкретного пользователя. Также можно использовать LEFT JOIN, особенно если справочник тем большой или формируется пользователями самостоятельно (т.е. потенциально большой). Что касается пункта 3, можно вывести одним циклом. В запросе сделайте сортировку сначала по темам и при выводе отслеживайте изменение id темы (при появлении нового id запоминайте его как текущий и выводите заголовок новой темы). --- Добавлено --- P.S. У нас не спеша пилят простой закладочный сервис, но в нем пока вроде нет группировки/сортировки по темам в общем списке. Закладок ведь обычно дофига, так что нафиг их группировать в рамках пагинации? Или это для какого-то короткого списка, например за конкретный день?
@Prystapchuk Serhii хоть бы посмотрел что там внутри ,перед тем как отправить Код (Text): -- phpMyAdmin SQL Dump -- version 4.9.0.1 -- https://www.phpmyadmin.net/ -- -- Хост: 127.0.0.1:3306 -- Час створення: Чрв 16 2020 р., 14:19 -- Версія сервера: 5.6.43-log -- Версія PHP: 7.0.33 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;