Доброго времени суток. Есть база с полями id,obl,city,name.portfolio1....portfolio24 - нужно сделать запрос типа "взять портфолио с 1 по 24 ", тоесть возвратить все поля что имеют значение и не возвращать те что не имеют значений. я не профи и мне трудно придумать как реализовать такой запрос - помогите пожалуйсто. сайт информационний и количество фото в портфолио не всегда 24, и если вивести все 24 то будет много лишних пустишек.
Попробуй описать, что хочешь сделать, какие данные нужно хранить, думаю есть более простой способ, можно переделать схему базы данных. Что в каждой "id,obl,city,name.portfolio1....portfolio24"?
в каждом портфолио название картинки (работа фотографа *.png) - мне нужно получить масив с фотографиями с етих 24 портфолио но только то количество которое там заполнено, тоесть если фотограф дал 12 фото то мне надо со всех 24 получить только 12. Реализовал как "взать все 24 порфолио" и while ($row['portfolioN']!=null){}- правильно ли так? Добавлено спустя 3 минуты: грубо говоря проект черновой - просто надо чтото показать клиентам - будет дороботка в плане скриптов и защит - заказчик просит хоть чтото для демонстрации фотографам.
portfolioN+1 можно вынести в отдельную таблицу с внешним ключём и делать запрос с JOIN. Попробуй начать с точного описание что ты хочешь держать в базе данных. while ($row['portfolioN']!=null){}- это мне ничего не даёт. Похоже что ты делаешь что-то не правильно, но и понять что ты хочешь сделать тоже не возможно, пока мало информации. запрос портфолио Код (PHP): SELECT * FROM `users` RIGHT JOIN `portfolio` ON `users`.`id` = `portfolio`.`users_id` схема таблицы и данные Код (PHP): -- -- Структура таблицы `portfolio` -- CREATE TABLE IF NOT EXISTS `portfolio` ( `id` int(11) NOT NULL, `users_id` int(11) NOT NULL COMMENT 'внешний ключ id фотографа', `title` varchar(255) NOT NULL COMMENT 'описание работы', `img` varchar(255) NOT NULL COMMENT 'название файла изображения' ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='фотографии фотографа для портфолио'; -- -- Дамп данных таблицы `portfolio` -- INSERT INTO `portfolio` (`id`, `users_id`, `title`, `img`) VALUES (1, 2, 'лужи', '0001.jpg'), (2, 2, 'кусты', '0002.jpg'); -- -------------------------------------------------------- -- -- Структура таблицы `users` -- CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL COMMENT 'имя фотографа' ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='фотографы'; -- -- Дамп данных таблицы `users` -- INSERT INTO `users` (`id`, `name`) VALUES (1, 'admin'), (2, 'azgardik'); -- -- Индексы сохранённых таблиц -- -- -- Индексы таблицы `portfolio` -- ALTER TABLE `portfolio` ADD PRIMARY KEY (`id`); -- -- Индексы таблицы `users` -- ALTER TABLE `users` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT для сохранённых таблиц -- -- -- AUTO_INCREMENT для таблицы `portfolio` -- ALTER TABLE `portfolio` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3; -- -- AUTO_INCREMENT для таблицы `users` -- ALTER TABLE `users` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
Код (Text): -- Дамп данных таблицы `fotografs` -- INSERT INTO `fotografs` (`id`, `obl`, `city`, `name`, `text`, `foto`, `portfolio1`, `portfolio2`, `portfolio3`, `portfolio4`, `portfolio5`, `portfolio6`, `portfolio7`, `portfolio8`, `portfolio9`, `portfolio10`, `portfolio11`, `portfolio12`, `portfolio13`, `portfolio14`, `portfolio15`, `portfolio16`, `portfolio17`, `portfolio18`, `portfolio19`, `portfolio20`, `portfolio21`, `portfolio22`, `portfolio23`, `portfolio24`) VALUES (2, 8, 1, 'asdasd', 'fghfghfghfgh', 'asdasdasd', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''); в ячейках портфолио хранятся названия изображений в формате PNG - мне надо получить оттуда масив с етими фотографиями но только то количество которое внесено туда.