Buenos dias. Espero que me puedan dar una mano con el problema que tengo.
Tengo una BD en mysql con dos tablas escuelas y elegibilidad, con las siguiente estructura cada una
+--Esceulas--+--Elegibilidad--+
| CUE | CUE |
| Nombre | programa |
| direccion | etapa1 |
|departamento| etapa2 |
| nivel | etc |
+------------+----------------+
Y estoy tratando de realizar una consulta dinamica donde el usuario ingresa los campos por los cuales desea consultar:
Les pongo el codigo.
<form method = "POST" name = "cargaobras" onSubmit = "return validar(this)" action="<?php echo $_SERVER[PHP_SELF]?>">
<div align="center">
<p><strong>Busqueda por ingreso de Datos</strong></p>
<p><strong>Busqueda por:</strong>
<select name="departamento" id="departamento" tabindex="1">
<option value="departamento" selected="selected">Departamento</option>
<option value="25 DE MAYO">25 de Mayo</option>
<option value="IGUAZU">Iguaz?;/option>
<option value="SAN JAVIER">San Javier</option>
<option value="SAN PEDRO">San Pedro</option>
</select>
<strong>y/o por:</strong>
<select name="nivel" id="nivel" tabindex="2">
<option value="nivel" selected="selected">Nivel</option>
<option value="matinicial">Nivel Inicial</option>
<option value="matprimario">Primario</option>
<option value="matsecundario">Secundario</option>
</select>
<strong>y/o por:</strong>
<select name="programa" id="programa" tabindex="3">
<option value="programa" selected="selected">Programa</option>
<option value="iprodha">IProDHa</option>
<option value="pobras">Plan Obras</option>
<option value="promedu">Promedu II</option>
</select>
&nbsp;
<input name="buscar" type="submit" tabindex="4" value="Buscar"/>
</div>
</Form>
En otra seccion del codigo
//Tomo las variables
$departamento = $_POST[departamento];
$nivel = $_POST[nivel];
$programa = $_POST[programa];
Y se me presenta el siguiente problema que la unica solucion fue comenzar a anidar if para preguntarme que campos habia seleccionado el usuario
if($departamento==departamento)
{
if($nivel==nivel)
{
// realizo la busqueda por Programa
$sqlbuseleg= "SELECT escuelas.*, elegibilidad.* FROM escuelas INNER JOIN elegibilidad ON escuelas.cue=elegibilidad.cue WHERE elegibilidad.programa LIKE $programa";
$resultbuseleg = mysql_query($sqlbuseleg, $conexion);
} else {
if($programa==programa)
{
// realizo busqueda por Nivel // prestar atencion que la variable $nivel toma el nombre del campo de la tabla escuela
$sqlbuseleg= "SELECT escuelas.*, elegibilidad.* FROM escuelas INNER JOIN elegibilidad ON escuelas.cue=elegibilidad.cue WHERE escuelas.$nivel IS NOT NULL";
$resultbuseleg = mysql_query($sqlbuseleg, $conexion);
} else {
// realizo la busqueda por Programa y Nivel
$sqlbuseleg= "SELECT escuelas.*, elegibilidad.* FROM escuelas INNER JOIN elegibilidad ON escuelas.cue=elegibilidad.cue WHERE elegibilidad.programa LIKE $programa AND escuelas.$nivel IS NOT NULL";
$resultbuseleg = mysql_query($sqlbuseleg, $conexion);
} // if($programa=programa])
} // if($nivel=nivel])
} else {
if($nivel==nivel)
{
if($programa==programa)
{
// realizo la busqueda por Departamento
$sqlbuseleg= "SELECT escuelas.*, elegibilidad.* FROM escuelas INNER JOIN elegibilidad ON escuelas.cue=elegibilidad.cue WHERE escuelas.departamento LIKE %$departamento%";
$resultbuseleg = mysql_query($sqlbuseleg, $conexion);
} else {
// realizo la busqueda por Departamento y Programa
$sqlbuseleg= "SELECT escuelas.*, elegibilidad.* FROM escuelas INNER JOIN elegibilidad ON escuelas.cue=elegibilidad.cue WHERE escuelas.departamento LIKE %$departamento% AND elegibilidad.programa LIKE $programa";
$resultbuseleg = mysql_query($sqlbuseleg, $conexion);
} // if($programa=programa])
} else {
if($programa==programa)
{
// realizo la busqueda por Departamento y Nivel
$sqlbuseleg= "SELECT escuelas.*, elegibilidad.* FROM escuelas INNER JOIN elegibilidad ON escuelas.cue=elegibilidad.cue WHERE escuelas.departamento LIKE %$departamento% AND escuelas..$nivel. IS NOT NULL";
$resultbuseleg = mysql_query($sqlbuseleg, $conexion);
} else {
// realizo la busqueda por los 3 Items Departamento, Nivel y Programa
$sqlbuseleg= "SELECT escuelas.*, elegibilidad.* FROM escuelas INNER JOIN elegibilidad ON escuelas.cue=elegibilidad.cue WHERE escuelas.departamento LIKE %$departamento% AND escuelas..$nivel. IS NOT NULL AND elegibilidad.programa LIKE $programa";
$resultbuseleg = mysql_query($sqlbuseleg, $conexion);
} // if($programa=programa])
} // if($nivel=nivel])
} // if($departamento=departamento])
Existe alguna forma de realizar las distintas consultas con los campos si hacer if anidados???
O como Uds lo podrian llegar a solucionar???
Desde ya muchisimas gracias por la ayuda...
Aclaro que el sistemita funcionasi quieren les puedo pasar el codigo completo...
Lo unico es que lo estoy tratando de optimizar y de acortar el codigo...
Muchisimas gracias por la ayuda!!! Pertenece a la categoría:
| |