Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/03/2012, 16:17
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Hacer consulta segun checkbox

Tu código PHP sin ofender esta pésimo, obtienes de $_POST['requerimientos'] un array que después lo unes en un string que después de nuevo vuelves a convertir de nuevo en un array igual al que arroja $_POST['requerimientos'] solo para meter todo en un for, horrible!, pero bueno, el código deberia ser algo así...

Código PHP:
Ver original
  1. <?php
  2.  
  3. //$requerimientos = $_POST['requerimientos'];
  4. $requerimientos = array(1,2,3,4);
  5.  
  6. $sql = 'select id,codigo,fecha_fin,fecha_inicio,sup_asignado,asig nado,completado from tareas where ';
  7. $addSql = false;
  8. foreach($requerimientos as $item) {
  9.     if ($addSql) {
  10.         $sql .= ' OR ';
  11.     }
  12.  
  13.     switch($item) {
  14.         case 1:
  15.             $sql .= 'completado!=\'0000-00-00 00:00:00\' 1 ';
  16.             $addSql = true;
  17.             break;
  18.         case 2:
  19.             $sql .= 'CURDATE()<fecha_fin AND completado LIKE \'0000-00-00 00:00:00\' 2 ';
  20.             $addSql = true;
  21.             break;
  22.         case 3:
  23.             $sql .= 'CURDATE()>fecha_fin AND completado LIKE \'0000-00-00 00:00:00\' AND fecha_fin!=\'0000-00-00\' 3 ';
  24.             $addSql = true;
  25.             break;
  26.         case 4:
  27.             $sql .= 'CURDATE()<fecha_fin AND completado LIKE \'0000-00-00 00:00:00\' AND fecha_fin!=\'0000-00-00\' 4 ';
  28.             $addSql = true;
  29.             break;
  30.     }
  31. }
  32.  
  33. echo $sql;

Nota: el 1, 2, etc al final de los SQL era para "debuguear" el código, tienes que borrarlo para que funcione correctamente >.<
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)