Foros del Web » Programando para Internet » PHP »

Criterios independientes

Estas en el tema de Criterios independientes en el foro de PHP en Foros del Web. Hola Ante todo gracias por adelantado, y decir que soy un novato en esto, pero intento aprender. Mi problema está en que he creado un ...
  #1 (permalink)  
Antiguo 12/08/2011, 04:08
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Criterios independientes

Hola
Ante todo gracias por adelantado, y decir que soy un novato en esto, pero intento aprender.

Mi problema está en que he creado un formulario de búsqueda con 3 criterios para una base de datos y funciona bien. La busqueda la realiza con los tres criterios a la vez mediante el "and", pero ahora quiero hacer que busque en la tabla independientemente de que estén los tres criterios, dos o uno.

Es decir, que para realizar la busqueda se pueda hacer con tres, dos o un criterio.

El formulario es mediante tres desplegables con las opciones ya definidas.

El codigo que tengo ahora es:

<?php
$conexion=mysql_connect("localhost","","") or
die("Problemas en la conexion");
mysql_select_db("lloguers",$conexion) or
die("Problemas en la selección de la base de datos");
$tabla=mysql_query("select ind, ref, hab, cap, foto, zona, enlace
from apt where hab='$_REQUEST[hab]' and zona='$_REQUEST[zona]' and tipo='$_REQUEST[tipo]'",$conexion) or
die("Problemas en el select:".mysql_error());


?>

Agradeceré cualquier ayuda

Gracias
  #2 (permalink)  
Antiguo 12/08/2011, 08:10
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Criterios independientes

vortexjgh, bienvenido a FDW.

Podrias usar una matriz y la funcion implode para generar los filtros:

Código PHP:
Ver original
  1. // Inicializas la matriz
  2. $filtros = array();
  3.  
  4. // Verificas si recibes alguna variable
  5. if(!empty($_REQUEST['algo'])) {
  6.     $filtros[] = "algo = '{$_REQUEST['algo']}'";
  7. }
  8.  
  9. // Al final, creas el filtro con la funcion implode()
  10. $filtro = implode(' AND ', $filtros);
  11.  
  12. // Lo agregas a tu consulta:
  13. mysql_query("SELECT * FROM tabla WHERE $filtro") or die('Error en consulta: ' . mysql_error());

Las llaves en $_REQUEST son necesarias para que PHP pueda interpretar la variable.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 13/08/2011, 09:51
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Tema resuelto Criterios independientes

Muchisimas gracias TRIBY

He podido solucionar el problema con tu ayuda.

este es el código, por si a alguien le ayuda:


Código PHP:
Ver original
  1. <?php
  2. $filtros = array();
  3.  
  4.  if(!empty($_REQUEST['hab'])) {
  5.     $filtros[] = "hab = '{$_REQUEST['hab']}'";
  6.   }
  7.  if(!empty($_REQUEST['zona'])) {
  8.     $filtros[] = "zona = '{$_REQUEST['zona']}'";
  9.   }
  10.  if(!empty($_REQUEST['tipo'])) {
  11.     $filtros[] = "tipo = '{$_REQUEST['tipo']}'";
  12.   }
  13.     $filtro = implode(' AND ', $filtros);
  14.  
  15.  
  16. $conexion=mysql_connect("localhost","root","") or
  17.   die("Problemas en la conexion");
  18. mysql_select_db("lloguers",$conexion) or
  19.   die("Problemas en la selección de la base de datos");
  20. $tabla=mysql_query("select ind, ref, hab, cap, foto, zona, enlace
  21.                       from apt where $filtro",$conexion) or
  22.   die("Problemas en el select:".mysql_error());
  23.  
  24.  
  25. ?>
Saludos

Tema resuelto.

Última edición por vortexjgh; 13/08/2011 a las 09:57

Etiquetas: criterios, independientes, mysql, sql, tabla, formulario
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 21:58.