dominios y alojamiento web en hostalia

Consulta Dinamica con Campos ingresado por usuario

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>

 
<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:

No hay respuestas para esta pregunta

Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...