Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/07/2014, 17:09
manuel001
 
Fecha de Ingreso: junio-2014
Mensajes: 20
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Multiples filtros dentro de una consulta

Saludos estimados.
Otra ves acudiendo a ustedes.

Estoy haciendo una busqueda con multiples filtros, estos filtros son variables enviadas desde un formulario via POST, el usuario puede usar uno, dos o los que quiera para filtrar la informacion buscada, entonces la consulta tendria que tomar solo esas variables.

Ahi les muestro el codigo, auque ahora sin resultado.

Quiza lo estoy planteando mal, por eso acudo a su experiencia, desde ya muchas gracias.

Código PHP:
Ver original
  1. <?php
  2. ...
  3. //capturo las variables enviadas desde el formulario via POST
  4. $fdesde=$_POST["fdesde"];
  5. $fhasta=$_POST["fhasta"];
  6. $id_cliente=$_POST["id_cliente"];
  7. $id_ttm=$_POST["id_ttm"];
  8. $id_persona=$_POST["id_persona"];
  9. $id_ordmot=$_POST["id_ordmot"];
  10. $id_estado=$_POST["id_estado"];
  11. $repuestos=$_POST["repuestos"];
  12.  
  13. //relaciono las tablas donde estan los campos a buscar y mostrar
  14. $sql="SELECT *
  15. FROM orden,cliente,ttm,persona,estado,ord_mot
  16. WHERE orden.id_cliente=cliente.id_cliente
  17. AND orden.id_ttm=ttm.id_ttm
  18. AND ttm.id_estado=estado.id_estado
  19. AND orden.id_persona=persona.id_persona
  20. AND orden.id_ordmot=ord_mot.id_ordmot";
  21.  
  22. //filtro las variables que estan definidas y no estan vacias para incrustarlo en la consulta SQL
  23. if(isset($id_cliente) && $id_cliente != "")
  24. {
  25.     $sql_id_cliente ="AND orden.id_cliente='$id_cliente'"; 
  26. }
  27. if(isset($id_ttm) && $id_ttm != "")
  28. {
  29.     $sql_ttm ="AND orden.id_ttm='$id_ttm'";
  30. }
  31. if(isset($id_persona) && $id_persona  != "")
  32. {
  33.     $sql_persona ="AND orden.id_persona='$id_persona'";
  34. }
  35. if(isset($id_estado) && $id_estado != "")
  36. {
  37.     $sql_estado="AND ttm.id_estado='$id_estado'";  
  38. }
  39. if(isset($id_ordmot) && $id_ordmot != "")
  40. {
  41.     $sql_ordmot="AND orden.id_ordmot='$id_ordmot'";
  42. }
  43. if(isset($repuestos) && $repuestos != "")
  44. {
  45.     $sql_repuestos ="AND orden.repuestos='$repuestos'";
  46. }
  47. if(isset($fdesde) && $fdesde != "")
  48. {
  49.     if(isset($fhasta) && $fhasta != "")
  50.         {
  51.         $sql_fecha ="AND fecha BETWEEN '$fdesde' AND '$fhasta'";                           
  52.         }  
  53. }
  54.  
  55. //consolido la consulta
  56. $sql_total = $sql.$sql_id_cliente.$sql_ttm.$sql_persona.$sql_estado.$sql_ordmot.$sql_repuestos.$sql_fecha;  
  57. $res=mysql_query($sql_total,$conex);
  58. ...                
  59. ?>

Última edición por gnzsoloyo; 20/07/2014 a las 17:19 Razón: Marcado equivocado y OFF TOPIC en MySQL.