Как создать умный запрос?

168
24 июня 2018, 23:40

Возникла проблема: есть чекбоксы с именами, отвечающими за id жанра(условно).Мне нужно, что-бы пользователь выбирал, игры с каким жанрами ему нужны, и они ему показывались на экране.Как это сделал я: Пользователь тыкает на чекбоксы, потом "Отправить", после чего срабатывает код.Там есть переменная, которая берет все жанры из таблицы, потом foreach, где прописано вот что:

$getGenres = Переменная, берущая все жанры из таблицы.
$data = $_GET(Все данные о чекбоксах отправляются по этому методу)
foreach($getGenres as $t){ 
if($data[$t['id']] == 'on'){ 
//code
} 
}

Только проблема в том, что данный метод может сработать, если выбрать определенный жанр.Да, я могу Все жанры записать в массив:

$Variable = array():
foreach($getGenres as $t){ 
if($data[$t['id']] == 'on'){ 
$Variable[] = $data[$t['id']];
} 
}

Тогда у меня будут все id жанров, которые выбрал пользователь.Но как мне сконструировать запрос?Ведь, изначально, мы не знаем, сколько всего жанров есть.Можно посчитать кол-во значений в массиве, допустим, юзер выбрал 3 жанра, значит в массиве 3 значения с информацией.Тогда будет запрос примерно такой:

SELECT * FROM таблица WHERE id = 1 AND id = 3 AND id=2(Значения условны)

Но если юзер выберет сразу 4 жанра?А пять? А теперь к сути: Как сделать умный запрос, который будет получать информацию независимо от того, сколько нужно сделать условий. Запрос должен выглядеть примерно так(Он неправильный, проверял):

SELECT * FROM `genres` WHERE id = 1,2,3(идам из массива(Выбранные пользователем))
Answer 1

Может быть

if(!empty($getGenres)){
    $sql = 'SELECT * FROM `genres` WHERE id IN ('.join(',',$getGenres).')';
}

Ну и понятно, перед встраиванием в sql, массив $getGenres хорошо бы проверить на пользовательский ввод

READ ALSO
Перевести jQuery в php

Перевести jQuery в php

Данный скрипт, добавляет определенный класс к блоку комментария, в зависимости от его рейтинга

145
Как правильно и безопасно обращаться к переменным $_POST, $_SERVER и т.п

Как правильно и безопасно обращаться к переменным $_POST, $_SERVER и т.п

IDE NetBeans ругается, мол "не обращайтесь непосредственно к суперглобальному массиву $_POST"

161
Как правильно в Laravel создать helper функции

Как правильно в Laravel создать helper функции

Хочу создать функцию в Laravel, для дальнейшего использования, в интернете есть много информации, но есть и различия, в частности, по вопросу...

179