За последние 24 часа нас посетили 18647 программистов и 1702 робота. Сейчас ищут 860 программистов ...

Помогите правильно оформить запрос

Тема в разделе "PHP и базы данных", создана пользователем azgardik, 17 авг 2015.

  1. azgardik

    azgardik Новичок

    С нами с:
    9 авг 2015
    Сообщения:
    9
    Симпатии:
    0
    Доброго времени суток. Есть база с полями id,obl,city,name.portfolio1....portfolio24 - нужно сделать запрос типа "взять портфолио с 1 по 24 ", тоесть возвратить все поля что имеют значение и не возвращать те что не имеют значений. я не профи и мне трудно придумать как реализовать такой запрос - помогите пожалуйсто. сайт информационний и количество фото в портфолио не всегда 24, и если вивести все 24 то будет много лишних пустишек.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Попробуй описать, что хочешь сделать, какие данные нужно хранить, думаю есть более простой способ, можно переделать схему базы данных.
    Что в каждой "id,obl,city,name.portfolio1....portfolio24"?
     
  3. azgardik

    azgardik Новичок

    С нами с:
    9 авг 2015
    Сообщения:
    9
    Симпатии:
    0
    в каждом портфолио название картинки (работа фотографа *.png) - мне нужно получить масив с фотографиями с етих 24 портфолио но только то количество которое там заполнено, тоесть если фотограф дал 12 фото то мне надо со всех 24 получить только 12. Реализовал как "взать все 24 порфолио" и while ($row['portfolioN']!=null){}- правильно ли так?

    Добавлено спустя 3 минуты:
    грубо говоря проект черновой - просто надо чтото показать клиентам - будет дороботка в плане скриптов и защит - заказчик просит хоть чтото для демонстрации фотографам.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    portfolioN+1 можно вынести в отдельную таблицу с внешним ключём и делать запрос с JOIN.

    Попробуй начать с точного описание что ты хочешь держать в базе данных.

    while ($row['portfolioN']!=null){}- это мне ничего не даёт.

    Похоже что ты делаешь что-то не правильно, но и понять что ты хочешь сделать тоже не возможно, пока мало информации.



    запрос портфолио
    Код (PHP):
    1. SELECT * FROM `users` RIGHT JOIN `portfolio` ON `users`.`id` = `portfolio`.`users_id` 
    схема таблицы и данные
    Код (PHP):
    1. --
    2. -- Структура таблицы `portfolio`
    3. --
    4.  
    5. CREATE TABLE IF NOT EXISTS `portfolio` (
    6.   `id` int(11) NOT NULL,
    7.   `users_id` int(11) NOT NULL COMMENT 'внешний ключ id фотографа',
    8.   `title` varchar(255) NOT NULL COMMENT 'описание работы',
    9.   `img` varchar(255) NOT NULL COMMENT 'название файла изображения'
    10. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='фотографии фотографа для портфолио';
    11.  
    12. --
    13. -- Дамп данных таблицы `portfolio`
    14. --
    15.  
    16. INSERT INTO `portfolio` (`id`, `users_id`, `title`, `img`) VALUES
    17. (1, 2, 'лужи', '0001.jpg'),
    18. (2, 2, 'кусты', '0002.jpg');
    19.  
    20. -- --------------------------------------------------------
    21.  
    22. --
    23. -- Структура таблицы `users`
    24. --
    25.  
    26. CREATE TABLE IF NOT EXISTS `users` (
    27.   `id` int(11) NOT NULL,
    28.   `name` varchar(255) NOT NULL COMMENT 'имя фотографа'
    29. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='фотографы';
    30.  
    31. --
    32. -- Дамп данных таблицы `users`
    33. --
    34.  
    35. INSERT INTO `users` (`id`, `name`) VALUES
    36. (1, 'admin'),
    37. (2, 'azgardik');
    38.  
    39. --
    40. -- Индексы сохранённых таблиц
    41. --
    42.  
    43. --
    44. -- Индексы таблицы `portfolio`
    45. --
    46. ALTER TABLE `portfolio`
    47.   ADD PRIMARY KEY (`id`);
    48.  
    49. --
    50. -- Индексы таблицы `users`
    51. --
    52. ALTER TABLE `users`
    53.   ADD PRIMARY KEY (`id`);
    54.  
    55. --
    56. -- AUTO_INCREMENT для сохранённых таблиц
    57. --
    58.  
    59. --
    60. -- AUTO_INCREMENT для таблицы `portfolio`
    61. --
    62. ALTER TABLE `portfolio`
    63.   MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
    64. --
    65. -- AUTO_INCREMENT для таблицы `users`
    66. --
    67. ALTER TABLE `users`
    68.   MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3; 
     
  5. azgardik

    azgardik Новичок

    С нами с:
    9 авг 2015
    Сообщения:
    9
    Симпатии:
    0
    Код (Text):
    1.  
    2. -- Дамп данных таблицы `fotografs`
    3. --
    4.  
    5. 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
    6.  
    7. (2, 8, 1, 'asdasd', 'fghfghfghfgh', 'asdasdasd', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
    в ячейках портфолио хранятся названия изображений в формате PNG - мне надо получить оттуда масив с етими фотографиями но только то количество которое внесено туда.
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Я выше дал пример, расширь его для своих нужд.