Ver Mensaje Individual
  #7 (permalink)  
Antiguo 07/11/2008, 16:37
vmac179
 
Fecha de Ingreso: julio-2007
Ubicación: /home/victor
Mensajes: 114
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Evitar tantos if

lo reduci.. gracias por los consejos

Código PHP:
// Selecciono las tablas y columanas
$sql " SELECT ini.ini_id,to_char(ini.ini_fecha_creacion, 'DD-MM-YYYY'),ini.ini_codigo,ini.ini_nombre,
ins.*,reg.*,est.*  FROM iniciativa ini,institucion ins,region reg, estado est "
;

// comienzo a concatenar 
$sql .= " WHERE ini.ini_inst_id = ins.inst_id ";
$sql .= " AND ini.ini_reg_id = reg.reg_id ";
$sql .= " AND ini.ini_est_id = est.est_id ";


if (
$_POST[desde] and $_POST[hasta]) { // por fechas 
$sql .= " AND ini.ini_fecha_creacion BETWEEN '$_POST[desde]' AND '$_POST[hasta]' ";
}

if (
$_POST[institucion]) { // por institucion
$sql .= " AND ini.ini_inst_id = '$_POST[institucion]'  ";
}

if (
$_POST[region]) { // por region
$sql .= " AND ini.ini_reg_id = '$_POST[region]' ";
}

if (
$_POST[estado]) { // por estado 
$sql .= " AND ini.ini_est_id = '$_POST[estado]' ";
}


$sql .= " ORDER BY ini.ini_fecha_creacion DESC "// el orden 

$q $db->query($sql); // la ejecuto

if ($_POST['borrar']) {

$lista implode(',',$_POST['seleccion']); // implode los separa por coma para hacer un delete where id IN
$borrar $db->query("UPDATE iniciativa SET ini_est_id = 3 WHERE ini_id IN($lista)");

$q $db->query("$sql");