Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2009, 10:25
Avatar de Yamilskate
Yamilskate
 
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 17 años, 7 meses
Puntos: 0
simplificar condiciones para una consulta?

Núnca había hecho un código tan monstruoso cómo este, lo que necesito es simpificar esto, pués si funciona bien, pero no me agrada ver tanto código para realizar una simple busqueda... Espero alguien me pueda ayuda a encontrar una forma de simplificar esto:

Código PHP:
if ( ($por=="colonia") && ($estado!="") && ($controlador=="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND colonia LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="domicilio") && ($estado!="") && ($controlador=="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND domicilio LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="solicitante") && ($estado!="") && ($controlador=="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND solicitante LIKE '%$busqueda%' LIMIT $limite;";
         
if ( (
$por=="colonia") && ($estado!="") && ($controlador=="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND perito = '$perito' AND colonia LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="domicilio") && ($estado!="") && ($controlador=="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND perito = '$perito' AND domicilio LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="solicitante") && ($estado!="") && ($controlador=="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND perito = '$perito' AND solicitante LIKE '%$busqueda%' LIMIT $limite;";
         
if ( (
$por=="colonia") && ($estado=="") && ($controlador=="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE colonia LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="domicilio") && ($estado=="") && ($controlador=="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE domicilio LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="solicitante") && ($estado=="") && ($controlador=="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE solicitante LIKE '%$busqueda%' LIMIT $limite;";
         
if ( (
$por=="colonia") && ($estado=="") && ($controlador=="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE colonia LIKE '%$busqueda%' AND perito = '$perito' LIMIT $limite;";
if ( (
$por=="domicilio") && ($estado=="") && ($controlador=="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE domicilio LIKE '%$busqueda%' AND perito = '$perito' LIMIT $limite;";
if ( (
$por=="solicitante") && ($estado=="") && ($controlador=="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE solicitante LIKE '%$busqueda%' AND perito = '$perito' LIMIT $limite;";
         
if ( (
$por=="colonia") && ($estado=="") && ($controlador!="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE controlador = '$controlador' AND colonia LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="domicilio") && ($estado=="") && ($controlador!="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE controlador = '$controlador' AND domicilio LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="solicitante") && ($estado=="") && ($controlador!="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE controlador = '$controlador' AND solicitante LIKE '%$busqueda%' LIMIT $limite;";
         
if ( (
$por=="colonia") && ($estado=="") && ($controlador!="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE controlador = '$controlador' AND perito = '$perito' AND colonia LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="domicilio") && ($estado=="") && ($controlador!="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE controlador = '$controlador' AND perito = '$perito' AND domicilio LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="solicitante") && ($estado=="") && ($controlador!="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE controlador = '$controlador' AND perito = '$perito' AND solicitante LIKE '%$busqueda%' LIMIT $limite;";
         
if ( (
$por=="colonia") && ($estado!="") && ($controlador!="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND controlador = '$controlador' AND colonia LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="domicilio") && ($estado!="") && ($controlador!="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND controlador = '$controlador' AND domicilio LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="solicitante") && ($estado!="") && ($controlador!="") && ($perito=="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND controlador = '$controlador' AND solicitante LIKE '%$busqueda%' LIMIT $limite;";
         
if ( (
$por=="colonia") && ($estado!="") && ($controlador!="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND controlador = '$controlador' AND perito = '$perito' AND colonia LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="domicilio") && ($estado!="") && ($controlador!="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND controlador = '$controlador' AND perito = '$perito' AND domicilio LIKE '%$busqueda%' LIMIT $limite;";
if ( (
$por=="solicitante") && ($estado!="") && ($controlador!="") && ($perito!="") )
$cadbusca="SELECT * FROM cve_shf WHERE estado = '$estado' AND controlador = '$controlador' AND perito = '$perito' AND solicitante LIKE '%$busqueda%' LIMIT $limite;"
Para que se den una idea de lo que hago con este código es realizar busquedas avanzadas (osea con varios campos) cómo se muetra en la imagen:

http://img184.imageshack.us/img184/3179/ayudaze8.jpg <- Ver imagen, grande

Gracias de antemano, saludos cordiales!

Última edición por Yamilskate; 08/01/2009 a las 10:31