Alexis88 si me dio error pero igual lo cambie por array() pero no e probado el codigo actualizado de lolainas probe el tuyo Alexis88 y se que doy mucha lata pero mejor hacerlo bien ahora y no volver a preguntar despues bueno fue magnifico el script pero me surge un inconveniente si un elemento esta vacio por ejemplo grade me lo imprime asi:
Código SQL:
Ver originalWHERE grade IN AND genre IN (10,8,4,5) AND select_time = 3 AND LANGUAGE = 1
lo cual supongo dara error al hacer la consulta.
El codigo que probe fue:
Código PHP:
Ver original$grade = !is_null($_GET["grade"]) ?
"(" . implode(",", $_GET["grade"]) . ")" : ""; $genre = !is_null($_GET["genre"]) ?
"(" . implode(",", $_GET["genre"]) . ")" : ""; $select_time = !is_null($_GET["select_time"]) ?
$_GET["select_time"] : ""; $language = !is_null($_GET["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" . strlen($condicion) ?
" WHERE $condicion" : "";