Foros del Web » Programando para Internet » PHP »

Filtrado con variables vacias

Estas en el tema de Filtrado con variables vacias en el foro de PHP en Foros del Web. Buenas a todos, Estoy acabando mi página de anuncios clasificados y me he quedado un poco atascado en el buscador Se trata del tipico buscador ...
  #1 (permalink)  
Antiguo 10/05/2010, 08:20
 
Fecha de Ingreso: agosto-2009
Mensajes: 16
Antigüedad: 15 años, 3 meses
Puntos: 0
Filtrado con variables vacias

Buenas a todos,

Estoy acabando mi página de anuncios clasificados y me he quedado un poco atascado en el buscador
Se trata del tipico buscador con menus desplegables,y en cada uno de ellos el usuario elige una opcion o 'seleccionar todo'


La duda me surge al intentar que cuando se seleccione todo de una categoria,ese campo no se utilice en el filtrado.

----------------------------
Un ejemplo:

-COCHES (Audi,Bmw,Ford)
-COLOR (rojo,azul,verde)

Y si selecciona solo COCHE = Audi, que se muestren los Audi de tooodos los colores.

-------------------------------------------


Desde ya muchas gracias a los que respondais.
Un saludo.
  #2 (permalink)  
Antiguo 10/05/2010, 08:42
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Filtrado con variables vacias

pues solo corta la consulta y la condicionas
Código PHP:
Ver original
  1. $consulta = "SELECT dato FROM tabla ";
  2. if(!empty($_GET["coche"])){
  3.    $consulta .= "WHERE coche = ".$_GET["coche"];
  4. }
saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 10/05/2010, 09:30
 
Fecha de Ingreso: agosto-2009
Mensajes: 16
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Filtrado con variables vacias

buenas Hidek1
Antes que nada,agradecerte que me hayas contestado tan rapido.


A ver,yo estoy haciendo todo esto con Dreamweaver8...y hago todas las consultas con 'juego de registros,vinculaciones,etc...'
Entonces se me queda algo asi(esto seria lo basico):

Código PHP:
<?php require_once('Connections/conExion.php'); ?>

<?php
  
mysql_select_db
($database_conExion$conExion);
$query_coches "SELECT * FROM coches";
$coches mysql_query($query_coches$conExion) or die(mysql_error());
$row_coches mysql_fetch_assoc($coches);
$totalRows_coches mysql_num_rows($coches);

?>

Pero no se donde colocar tu codigo para que funcione.
He probado esto:

Código PHP:
<?php require_once('Connections/conExion.php'); ?>

<?php
   

mysql_select_db
($database_conExion$conExion);
$query_coches "SELECT * FROM coches ";
if(!empty(
$_GET["marca"])){
$query_coches .= "WHERE coches.marca = ".$_GET["marca"];
};
$coches mysql_query($query_coches$conExion) or die(mysql_error());
$row_coches mysql_fetch_assoc($coches);
$totalRows_coches mysql_num_rows($coches);

?>

...pero me desaparece el juego de registros (el SELECT, vamos) y me vuelca toda la BBDD


Si puedes orientarme sobre este ejemplo (u otro) me seria de gran utilidad...luego ya sigo probando para 'armar' el buscador completo.


Un saludo y gracias por tu ayuda.
  #4 (permalink)  
Antiguo 10/05/2010, 09:42
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Filtrado con variables vacias

aqui te dejo un ejemplo
Código PHP:
Ver original
  1. <?php
  2. $query_coches = "SELECT * FROM coches ";
  3. $flag = false;
  4. if(isset($_GET["marca"])){
  5.    $sentencia = $flag ? " AND " : "WHERE ";
  6.    $flag = true;
  7.    $query_coches .= $sentencia."marca = '".$_GET["marca"]."'";
  8. }
  9. if(isset($_GET["color"])){
  10.    $sentencia = $flag ? " AND " : "WHERE ";
  11.    $flag = true;
  12.    $query_coches .= $sentencia."color = '".$_GET["color"]."'";
  13. }
  14. echo $query_coches;
  15. ?>

saludos
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 10/05/2010, 15:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 16
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Filtrado con variables vacias

Gracias de nuevo por tu respuesta Hidek1.

He probado lo que me dices y queda así:

Código PHP:
<?php require_once('Connections/buscador.php'); ?>
<?php
mysql_select_db
($database_buscador$buscador);
$query_coches "SELECT * FROM coches ";
$flag false;
if(isset(
$_GET["marca"])){
   
$sentencia $flag " AND " "WHERE ";
   
$flag true;
   
$query_coches .= $sentencia."marca = '".$_GET["marca"]."'";
}
if(isset(
$_GET["color"])){
   
$sentencia $flag " AND " "WHERE ";
   
$flag true;
   
$query_coches .= $sentencia."color = '".$_GET["color"]."'";
}
echo 
$query_coches;
$coches mysql_query($query_coches$buscador) or die(mysql_error());
$row_coches mysql_fetch_assoc($coches);
$totalRows_coches mysql_num_rows($coches);
?>
Creo que el problema está en que no sé como meter el código dentro del select de Dreamweaver.



Mira,yo sigo estos pasos:

1. Creo el documento buscador.php
2. Creo conexion con base de datos (usando DW...Nueva conexion)
3. Hago un select normal a la BBDD (usando tambien DW...nuevo juego de registros)...y sale esto:

Código PHP:
<?php
mysql_select_db
($database_buscador$buscador);
$query_coches "SELECT * FROM coches";
$coches mysql_query($query_coches$buscador) or die(mysql_error());
$row_coches mysql_fetch_assoc($coches);
$totalRows_coches mysql_num_rows($coches);
?>
...hasta aqui todo normal (como un Recorset normal)

4. Sustituyo $query_coches = "SELECT * FROM coches "; por el codigo que tu me has pasado...y zás! desaparece el juego de registros...

Y ahi es donde ya no sé que hacer...

Espero que puedas ayudarme.
Un saludo y muchas gracias de nuevo por tu ayuda.

Fran.

Etiquetas: vacias, variables, filtros
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 17:18.