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

Código PHP:
Ver original
  1. class Filter {
  2.  
  3.     private $filtros = [];
  4.  
  5.     function __get($filtro) {
  6.         return $this->filtros[$filtro];
  7.     }
  8.  
  9.     function __construct($cadena) {
  10.         foreach (explode('&', $cadena) as $par) {
  11.             list($filtro, $valor) = explode('=', $par);
  12.             $valor = is_numeric($valor) ? $valor : "'$valor'";
  13.             if (isset($this->filtros[$filtro]))
  14.                 if (is_array($f = &$this->filtros[$filtro]))
  15.                     array_push($f, $valor);
  16.                 else
  17.                     $f = [$f, $valor];
  18.             else
  19.                 $this->filtros[$filtro] = $valor;
  20.         }
  21.     }
  22.  
  23. }
  24.  
  25. $filtros = new Filter("select_time=tiempo&grade=3&grade=4&grade=5&genre=5&genre=9&genre=5&language=spanish");
  26.  
  27. $consulta = 'SELECT * FROM tblmovies WHERE '
  28.     . '(grade = ' . implode(' OR grade = ', $filtros->grade) . ') AND '
  29.     . '(genre = ' . implode(' OR genre = ', $filtros->genre) . ') AND '
  30.     . "language = $filtros->language AND "
  31.     . "select_time = $filtros->select_time;";
  32.  
  33. echo $consulta;