Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Duda con consultas php a mysql

Estas en el tema de Duda con consultas php a mysql en el foro de PHP en Foros del Web. Hola, despues de mucho tiempo consultando vuestro foto me he decidido a registrarme para haceros una consulta en la que no he encontrado respuesta. Os ...
  #1 (permalink)  
Antiguo 15/04/2016, 05:48
 
Fecha de Ingreso: abril-2016
Mensajes: 2
Antigüedad: 8 años
Puntos: 0
Duda con consultas php a mysql

Hola, despues de mucho tiempo consultando vuestro foto me he decidido a registrarme para haceros una consulta en la que no he encontrado respuesta. Os doy las gracias por adelantado.

Mi duda es la siguiente,
En un buscador de clientes en php, hay 5 inputs de busqueda diferentes, uno de ellos es un filtro entre fechas y los demas nombres, numero de referencia, etc..

Me gustaria poder hacer poder hacer una consulta donde si hay mas de un campo con datos se realice la consulta con los datos a buscar.

os dejo un ejemplo.

Si busco un cliente que se dio de alta entre 2 fechas, que se que el cliente se llama Pedro y que tiene un tipo de contrato "X"; Como puedo realizar esa consulta teniendo en cuenta que esos campos pueden estar vacios al realizar otra busqueda.


habia pensado que bueno con un :
Código PHP:
if(!empty($fechaini) && (!empty($cups))){
$query1=" SELECT contrato.*, comerciales.nombre as nombrecomercial, comerciales.ape1 FROM contrato, comerciales WHERE `FechaPresentado` BETWEEN '$fechaini'  AND '$fechafin' AND comerciales.idcomerciales = contrato.idcomercial and CupsElectricidad like '%$cups%' or CupsGas like '%$cups%';";

} elseif (!empty(
$cups)){
$query1="SELECT contrato.*, comerciales.nombre as nombrecomercial, comerciales.ape1  FROM contrato, comerciales where comerciales.idcomerciales = contrato.idcomercial and CupsElectricidad like '%$cups%' or CupsGas like '%$cups%';";
$result1=mysql_db_query ($dbname$query1,$conexion);

pero claro realizar 25 condicionales cargaria demasiado la pagina pienso.


Como lo veis vosotros?
  #2 (permalink)  
Antiguo 15/04/2016, 06:26
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Duda con consultas php a mysql

Código PHP:
Ver original
  1. $query = "SELECT
  2. contrato.*,
  3. comerciales.nombre as nombrecomercial,
  4. comerciales.ape1
  5. FROM contrato, comerciales
  6. WHERE
  7. comerciales.idcomerciales = contrato.idcomercial";
  8.  
  9.         if ( trim($_POST['fechaini']) != "" && trim($_POST['fechafin']) != "" )
  10.  
  11.             $query.= " AND FechaPresentado BETWEEN '" . $_POST['fechaini'] . " AND '" . $_POST['fechafin'] . "'";
  12.  
  13.  
  14.         if (trim($cups) != "")
  15.  
  16.             $query.= " AND CupsElectricidad '%" . $cups . "%'";
  17.  
  18.  
  19.  
  20.          if (trim($cups) != "")
  21.  
  22.             $query.= " OR CupsGas = '" . $cups . "'";
  23.  
  24.  
  25. $ejecutar_query =  mysql_db_query ($dbname, $query,$conexion);
  #3 (permalink)  
Antiguo 15/04/2016, 06:39
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Duda con consultas php a mysql

Puedes construir el WHERE de la consulta de forma dinámica.

Código PHP:
Ver original
  1. If (...){
  2. //condición uno
  3. //$where[ ]='campo1=valor1';
  4. $where[ ]='(campo BETWEEN '.$inicio.' AND '.$fin.' )';
  5. }
  6. If (...){
  7. //condición dos
  8. $where[ ]='campo2=valor2';
  9. }
  10. If (...){
  11. //condición tres
  12. $where[ ]='campo3=valor3';
  13. }
  14. //tantas condiciones como necesites
  15.  
  16. foreach ( $where as $k => $v ){
  17. $w='';
  18. if (  $k==0 ){ $w=' WHERE '.$v; }
  19. else { $w.=' AND '.$v; }
  20. }
  21. $sql='SELECT * FROM MiTabla '.$w;

Espero que se entienda el concepto, en lugar de AND puedes utilizar OR en función de tus necesidades.
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 15/04/2016 a las 06:49
  #4 (permalink)  
Antiguo 15/04/2016, 07:03
 
Fecha de Ingreso: abril-2016
Mensajes: 2
Antigüedad: 8 años
Puntos: 0
Respuesta: Duda con consultas php a mysql

Muchas gracias por vuestra pronta respuesta,

pues visto que ya tengo el codigo picado la mejor opcion sera la que me ofreces xerifandtomas, Gracias!

Etiquetas: fecha, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:38.