Ver Mensaje Individual
  #13 (permalink)  
Antiguo 14/02/2014, 23:52
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Separar cadena en multiples secciones para crear filtro

Para todos los casos
Código PHP:
Ver original
  1. class Filter {
  2.  
  3.     private $filtros = [];
  4.  
  5.     // un filtro es un grupo de condiciones
  6.     function __get($filtro) {
  7.         return "($filtro = " . implode(" OR $filtro = ", $this->filtros[$filtro]) . ")";
  8.     }
  9.  
  10.     function __construct($cadena) {
  11.         foreach (explode('&', $cadena) as $par) {
  12.             list($filtro, $valor) = explode('=', $par);
  13.             $v = is_numeric($valor) ? $valor : "'$valor'";
  14.             if (is_array($f = &$this->filtros[$filtro]))
  15.                 array_push($f, $v);
  16.             else
  17.                 $f = [$v];
  18.         }
  19.     }
  20.  
  21. }
  22.  
  23. $cadena = "select_time=2&grade=3&grade=4&grade=5&genre=5&genre=9&language=0";
  24. $filtros = new Filter($cadena);
  25. $consulta = "SELECT * FROM tblmovies WHERE $filtros->grade AND $filtros->genre AND $filtros->language AND $filtros->select_time;";
  26. var_dump($cadena, $filtros, $consulta);

EDITO
Prueba con esto y goza amigo:
Código PHP:
Ver original
  1. $cadena = "select_time=2&grade=3&grade=4&grade=terror&genre=amor&genre=9&genre=5&language=0";

Última edición por lolainas; 15/02/2014 a las 00:02