Ver Mensaje Individual
  #12 (permalink)  
Antiguo 14/02/2014, 23:24
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 2 meses
Puntos: 977
Respuesta: Separar cadena en multiples secciones para crear filtro

Corrijo: Para que no tengas problemas en la recepción de datos, hazlo así:

Código Javascript:
Ver original
  1. $.ajax({
  2.     url: "ejemplo.php",
  3.     type: "GET",
  4.     data: {
  5.             grade: [2, 5, 9],
  6.             genre: [10, 8, 4],
  7.             select_time: 3,
  8.             language: 1
  9.           },
  10.     success: function(response){
  11.         //Acá haces algo con la respuesta del servidor
  12.     }
  13. });

Y añado un par de cositas más para hacer más robusta la parte en PHP:

Código PHP:
Ver original
  1. $grade = !is_null($_GET["grade"]) ? "(" . implode(",", $_GET["grade"]) . ")" : "";
  2. $genre = !is_null($_GET["genre"]) ? "(" . implode(",", $_GET["genre"]) . ")" : "";
  3. $select_time = !is_null($_GET["select_time"]) ? $_GET["select_time"] : "";
  4. $language = !is_null($_GET["language"]) ? $_GET["language"] : "";
  5.  
  6. //Acá comprobamos qué datos han llegado para armar la condición en la consulta
  7. $condicion = (isset($grade) ? "grade IN $grade" : "") .
  8.              (isset($genre) ? (isset($grade) ? " AND " : "") . "genre IN $genre" : "") .
  9.              (isset($select_time) ? (isset($grade) || isset($genre) ? " AND " : "") . "select_time = $select_time" : "") .
  10.              (isset($language) ? (isset($grade) || isset($genre) || isset($select_time) ? " AND " : "") . "language = $language" : "");
  11.  
  12. $query = "SELECT * FROM tblmovies" . strlen($condicion) ? " WHERE $condicion" : "";

Como es posible que algunas variables no contengan datos, es mejor hacer la comprobación respectiva, de modo que si no hay datos, la consulta no lanzará errores por falta de una condición.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 14/02/2014 a las 23:50