Hola, tengo un formulario con 8 listas desplegables diferentes que generan una variable diferente, lo que necesito es crear una pagina que me genere una consulta a la base de datos dependiendo de la variable que escogio el usuario:
lo que he hecho es lo siguiente:
a cada lista desplegable le he dado una opcion vacia con valor 1, entonces, lo que he pensado es: luego de recibir las variables construyo una cadena de condicionales que validan si cada variable recibida equivale a 1 o tiene valor de consulta para entonces proceder.
este es el código que he hecho
Código PHP:
Ver original<?php
//recibimos las variables
$mes = $_POST['mes'];
$cliente = $_POST['cliente'];
$regional = $_POST['regional'];
$proceso = $_POST['proceso'];
$tipo_reporte = $_POST['tipo_reporte'];
$medio = $_POST['medio'];
$clasificacion = $_POST['clasificacion'];
$reincidentes = $_POST['reincidentes'];
$estado = $_POST['estado'];
$tipo_accion = $_POST['tipo_accion'];
if ($mes == '1' ) {} else {
// hacemos la consulta en la base de datos
$consulta = "SELECT * FROM OM_Oportunidad WHERE MONTH(fecha) ='$mes'";
if ($numero_filas == '0' ) { echo "En el momento No existen OPM registradas para el mes indicado, por favor intente de nuevo"; } else {
//Fecha Inicial
$fecha_inicial = $res['2'];
$explotado = explode("-",$fecha_inicial); $dia_inicial=$explotado[2];
$mes_inicial=$explotado[1];
$anno_inicial=$explotado[0];$meses = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$mact=$meses[$mes-1];$fecha_inicio=$mact; $fecha_inicio.=$dia_inicial;
$fecha_inicio.=" de ";
$fecha_inicio.=$anno_inicial;
//Fecha Entrega Plan de Accion
$fecha_entrega = $res['12'];
$explotado2 = explode("-",$fecha_entrega); $dia_entrega=$explotado2[2];
$mes_entrega=$explotado2[1];
$anno_entrega=$explotado2[0];$meses2 = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$ment=$meses2[$mes-1];$fecha_entrega=$ment; $fecha_entrega.=$dia_entrega;
$fecha_entrega.=" de ";
$fecha_entrega.=$anno_entrega;echo "
";
}
echo "
<table border='1'>
<tbody>
<tr style='background: #ccc; font-weight: bold; text-align: center;'>
<td>Fecha</td>
<td>Clasificación de la OPM</td>
<td>Cliente</td>
<td>Regional</td>
<td>Proceso</td>
<td>Tipo de Reporte</td>
<td>Medio</td>
<td>Reincidentes</td>
<td>Descripcion de la OPM</td>
<td>Estado</td>
<td>Tipo de Acción</td>
<td>Entrega P.A.</td>
<td>Tiempo de Respuesta (días)</td>
</tr>
<tr>
<td>".$fecha_inicio."</td>
<td>".$res['9']."</td>
<td>".$res['1']."</td>
<td>".$res['3']."</td>
<td>".$res['4']."</td>
<td>".$res['5']."</td>
<td>".$res['6']."</td>
<td>".$res['7']."</td>
<td>".$res['8']."</td>
<td>".$res['10']."</td>
<td>".$res['11']."</td>
<td>".$fecha_entrega."</td>
<td>".$res['13']."</td>
</tr>
</tbody>
</table>
";
}
}
if ($cliente == '1' ) {} else {// hacemos la consulta en la base de datos
$consulta = "SELECT * FROM OM_Oportunidad WHERE idCliente ='$cliente'";
if ($numero_filas == '0' ) { echo "En el momento No existen OPM registradas para el cliente indicado, por favor intente de nuevo"; } else {
echo "
";
//formateamos las fechas
//Fecha Inicial
$fecha_inicial = $res['2'];$explotado = explode("-",$fecha_inicial); $dia_inicial=$explotado[2];
$mes_inicial=$explotado[1];
$anno_inicial=$explotado[0];$meses = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$mact=$meses[$mes-1];$fecha_inicio=$mact; $fecha_inicio.=$dia_inicial;
$fecha_inicio.=" de ";
$fecha_inicio.=$anno_inicial;
//Fecha Entrega Plan de Accion
$fecha_entrega = $res['12'];$explotado2 = explode("-",$fecha_entrega); $dia_entrega=$explotado2[2];
$mes_entrega=$explotado2[1];
$anno_entrega=$explotado2[0];$meses2 = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$ment=$meses2[$mes-1];$fecha_entrega=$ment; $fecha_entrega.=$dia_entrega;
$fecha_entrega.=" de ";
$fecha_entrega.=$anno_entrega;echo "
";
}
echo "
<table border='1'>
<tbody>
<tr style='background: #ccc; font-weight: bold; text-align: center;'>
<td>Fecha</td>
<td>Clasificación de la OPM</td>
<td>Cliente</td>
<td>Regional</td>
<td>Proceso</td>
<td>Tipo de Reporte</td>
<td>Medio</td>
<td>Reincidentes</td>
<td>Descripcion de la OPM</td>
<td>Estado</td>
<td>Tipo de Acción</td>
<td>Entrega P.A.</td>
<td>Tiempo de Respuesta (días)</td>
</tr>
<tr>
<td>".$fecha_inicio."</td>
<td>".$res['9']."</td>
<td>".$res['1']."</td>
<td>".$res['3']."</td>
<td>".$res['4']."</td>
<td>".$res['5']."</td>
<td>".$res['6']."</td>
<td>".$res['7']."</td>
<td>".$res['8']."</td>
<td>".$res['10']."</td>
<td>".$res['11']."</td>
<td>".$fecha_entrega."</td>
<td>".$res['13']."</td>
</tr>
</tbody>
</table>
";
}}
if ($regional == '1' ) {} else {// hacemos la consulta en la base de datos
$consulta = "SELECT * FROM OM_Oportunidad WHERE regional ='$regional'";
if ($numero_filas == '0' ) { echo "En el momento No existen OPM registradas para la regional indicada, por favor intente de nuevo"; } else {
echo "
";
//Fecha Inicial
$fecha_inicial = $res['2'];$explotado = explode("-",$fecha_inicial); $dia_inicial=$explotado[2];
$mes_inicial=$explotado[1];
$anno_inicial=$explotado[0];$meses = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$mact=$meses[$mes-1];$fecha_inicio=$mact; $fecha_inicio.=$dia_inicial;
$fecha_inicio.=" de ";
$fecha_inicio.=$anno_inicial;
//Fecha Entrega Plan de Accion
$fecha_entrega = $res['12'];$explotado2 = explode("-",$fecha_entrega); $dia_entrega=$explotado2[2];
$mes_entrega=$explotado2[1];
$anno_entrega=$explotado2[0];$meses2 = array("Enero ","Febrero ","Marzo ","Abril ","Mayo ","Junio ","Julio ","Agosto ","Septiembre ","Octubre ","Noviembre ","Diciembre ");$ment=$meses2[$mes-1];$fecha_entrega=$ment; $fecha_entrega.=$dia_entrega;
$fecha_entrega.=" de ";
$fecha_entrega.=$anno_entrega;echo "
";
}
echo "
<table border='1'>
<tbody>
<tr style='background: #ccc; font-weight: bold; text-align: center;'>
<td>Fecha</td>
<td>Clasificación de la OPM</td>
<td>Cliente</td>
<td>Regional</td>
<td>Proceso</td>
<td>Tipo de Reporte</td>
<td>Medio</td>
<td>Reincidentes</td>
<td>Descripcion de la OPM</td>
<td>Estado</td>
<td>Tipo de Acción</td>
<td>Entrega P.A.</td>
<td>Tiempo de Respuesta (días)</td>
</tr>
<tr>
<td>".$fecha_inicio."</td>
<td>".$res['9']."</td>
<td>".$res['1']."</td>
<td>".$res['3']."</td>
<td>".$res['4']."</td>
<td>".$res['5']."</td>
<td>".$res['6']."</td>
<td>".$res['7']."</td>
<td>".$res['8']."</td>
<td>".$res['10']."</td>
<td>".$res['11']."</td>
<td>".$fecha_entrega."</td>
<td>".$res['13']."</td>
</tr>
</tbody>
</table>
";
}}
if ($proceso == '1' ) {echo ' el valor de proceso es vacio';} else {echo ' se puede consultar por proceso';}
if ($tipo_reporte == '1' ) {echo ' el valor de tipo reporte es vacio';} else {echo ' se puede consultar por tipo reporte';}
if ($medio == '1' ) {echo ' el valor de medio es vacio';} else {echo ' se puede consultar por medio';}
if ($clasificacion == '1' ) {echo ' el valor de clasificacion es vacio';} else {echo 'se puede consultar por clasificacion';}
if ($reincidentes == '1' ) {echo ' el valor de reincidentes es vacio';} else {echo 'se puede consultar por reincidentes';}
if ($estado == '1' ) {echo ' el valor de estadi es vacio';} else {echo 'se puede consultar por estado';}
if ($tipo_accion == '1' ) {echo ' el valor de tipo accion es vacio';} else {echo 'se puede consultar por tipo accion';}
?>
Sin embargo lo que pasa es que cuando llega por ejemplo a $regional, me muestra el resultado de la consulta anterior $clientes.
mi pregunta es, cual sería la manera correcta de hacerlo?, pensé en un switch/case pero no le encontré la forma