За последние 24 часа нас посетили 22585 программистов и 1009 роботов. Сейчас ищут 690 программистов ...

Выборка из массива

Тема в разделе "PHP и базы данных", создана пользователем genych, 10 июл 2020.

  1. genych

    genych Новичок

    С нами с:
    2 сен 2018
    Сообщения:
    42
    Симпатии:
    3
    Привет всем, помогите
    Есть таблица галереи фото в базе данных и надо сделать выборку из них. В поле city_id имеется строка с id городов типа 1,2,3,4 ...... (varchar)
    На страницу города необходимо вывести фото если id города совпадает с city_id галереи
    Делаю что то типа того
    Код (Text):
    1. function get_gallery_city($city_id) {
    2.     global $connection;
    3.     $query = "SELECT * FROM gallery_images ORDER BY image_id DESC LIMIT 12";
    4.     $res = mysqli_query($connection, $query);
    5.     $get_gallery = array();
    6.     while($row = mysqli_fetch_assoc($res)) {
    7.         $get_gallery[$row['image']] = $row;
    8.     }
    9.     return $get_gallery;
    10. }
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      533,7 КБ
      Просмотров:
      4
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Создаешь еще таблицу со связями:
    Код (Text):
    1. image_id | city_id
    2. 13       | 1
    3. 13       | 2
    4. 13       | 3
     
  3. genych

    genych Новичок

    С нами с:
    2 сен 2018
    Сообщения:
    42
    Симпатии:
    3
    я так полагаю, что IN () не поможет, так как если id города равен 1, то будет мешанина и запрос будет выдавать и 1, и 10, и 11, то есть все что будет иметь в себе 1
    --- Добавлено ---
    а другой варик есть?
     
  4. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
  5. genych

    genych Новичок

    С нами с:
    2 сен 2018
    Сообщения:
    42
    Симпатии:
    3
    может implode explode
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    IN() поможет, но показанный – значительно более вменяемый.
    --- Добавлено ---
    Нефиг страдать фигней, когда оптимальный вариант давно известен. Понимаю, что переделывать влом. Но надо :)
     
  7. genych

    genych Новичок

    С нами с:
    2 сен 2018
    Сообщения:
    42
    Симпатии:
    3
    да там пипец переделывать много, не стоит игра свеч
     
  8. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Потом еще сложнее будет.
    --- Добавлено ---
    И совет на будущее: в след. раз прежде чем лепить всякую фигню, ознакомьтесь с теорией того, как это нужно делать.
     
  9. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    если ты под переделывать имеешь ввиду создать еще табличку. то там делов в написании sql запроса и insert в цикле.
     
  10. genych

    genych Новичок

    С нами с:
    2 сен 2018
    Сообщения:
    42
    Симпатии:
    3
    короче вы не смогли удовлетворить мою потребность))) но спасибо
     
  11. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Можно сделать ограниченное использование совместно со старым вариантом. Потом постепенно перейдете/переделаете на новый.
    --- Добавлено ---
    Это вы не смогли. Мы всего лишь указали на вашу немощность :D
     
  12. genych

    genych Новичок

    С нами с:
    2 сен 2018
    Сообщения:
    42
    Симпатии:
    3
    я не вижу особой необходимости в переделывании системы, нагрузка при данной задаче никакая, могу понять если база огромная и нужна правильная оптимизация базы данных
    --- Добавлено ---
    )))))))))) я то признался в своей немощности сразу, но не смог то ты )))))))))))))))))
     
  13. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Нет, ты просто поленился сделать то, что тебе сказали. Заставлять тебя делать правильно никто не нанимался ;)
    --- Добавлено ---
    Используй этот отстой дальше. И не вздумай улучшать :D
     
  14. genych

    genych Новичок

    С нами с:
    2 сен 2018
    Сообщения:
    42
    Симпатии:
    3
    да с чего ты взял, что ты прав, если таблиц в базе в 2 раза больше и запрос сложнее типа union или left join - разве это правильно? Не думал про это?)))