Analizando bien lo que quieres hacer con los datos, creo que la forma en como los guardaste antes de enviarlos, es incorrecta. Lo ideal sería que guardes los datos en variables que tengan los mismos nombres que los campos en la tabla de la BD y ya con eso, puedes hacer una jugada para hacer la búsqueda únicamente con los datos recibidos.
Veo que tienes estos campos grade, genre, select_time y language, entonces, sería perfecto si mandaras los valores de este modo (los valores son de ejemplo):
Código Javascript
:
Ver originalvar datos = {
grade: [2, 5, 9],
genre: [10, 8, 4],
select_time: 3,
language: 1
};
$.ajax({
url: "ejemplo.php",
type: "GET",
data: datos,
success: function(response){
//Acá haces algo con la respuesta del servidor
}
});
Y en el archivo "ejemplo.php", los recibes así:
Código PHP:
Ver original$grade = "(" . implode(",", $_GET["grade"]) . ")"; $genre = "(" . implode(",", $_GET["genre"]) . ")"; $select_time = $_GET["select_time"];
$language = $_GET["language"];
//Acá comprobamos qué datos han llegado para armar la condición en la consulta
$condicion = (isset($grade) ?
"grade IN $grade" : "") . (isset($genre) ?
(isset($grade) ?
" AND " : "") . "genre IN $genre" : "") . (isset($select_time) ?
(isset($grade) || isset($genre) ?
" AND " : "") . "select_time = $select_time" : "") . (isset($language) ?
(isset($grade) || isset($genre) || isset($select_time) ?
" AND " : "") . "language = $language" : "");
$query = "SELECT * FROM tblmovies WHERE $condicion";
Como veo que "genre" y "grade" pueden tener más de un valor, los envío como arrays con todos los datos que contengan y los convierto en un grupo para buscar con la sub-consulta
IN, luego, compruebo que cada dato exista, si es así, voy creando cada una de las condiciones según corresponda y al final, concateno todo a la consulta.
Pruébalo y nos dices cómo te fue, saludos.