Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Hacer una busqueda entre dos valores

Estas en el tema de Hacer una busqueda entre dos valores en el foro de Mysql en Foros del Web. Hola: Os expongo mi caso: Tengo en una base de datos una serie de casas, uno de los campos son dormitorios, el cual tiene asignado ...
  #1 (permalink)  
Antiguo 16/10/2011, 01:47
 
Fecha de Ingreso: abril-2008
Mensajes: 348
Antigüedad: 16 años
Puntos: 1
Hacer una busqueda entre dos valores

Hola:

Os expongo mi caso:

Tengo en una base de datos una serie de casas, uno de los campos son dormitorios, el cual tiene asignado un valor (4 por ejemplo)

Luego quiero hacer una busqueda, pero el formulario deberia mostar una opcion que fuera entre 3-5 habitaciones.

Mi primera duda es como plantear el select a la holar de asignar el valor, y luego la segunda es plantear la busqueda.



Muchas gracias de antemano
  #2 (permalink)  
Antiguo 16/10/2011, 03:51
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Hacer una busqueda entre dos valores

El valor de la select puede ser cualquiera:
Texto Valor
1 Hab 0
2-4 Hab 1
3-5 Hab 2

Luego haces un if o un switch.
Para buscar entre dos valores tienes que usar la sentencia BETWEEN.
http://dev.mysql.com/doc/refman/5.0/...erator_between

Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 16/10/2011, 04:17
Avatar de ayukkonen  
Fecha de Ingreso: octubre-2010
Ubicación: Sevilla
Mensajes: 355
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: Hacer una busqueda entre dos valores

Para no complicarte... Haz que el formulario tenga dos campos, uno que sea habitaciones mínimas, y otro, habitaciones máximas...

Eso lo pasas por variables y luego lo rescatas en el select.

Saludos.
__________________
Facebook | Twitter
  #4 (permalink)  
Antiguo 16/10/2011, 04:51
 
Fecha de Ingreso: abril-2008
Mensajes: 348
Antigüedad: 16 años
Puntos: 1
Respuesta: Hacer una busqueda entre dos valores

La idea de repara dos es buena, pero...

son una busqueda con mas de un campo y habria que "interpretar" los valores.

¿como organizo la busqueda para que que entienda que 1 es 2, 3 y 4 habitaciones...

os adjunto el formualrio de busqueda:

Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. if( isset($_POST['ref']) ||  isset($_POST['id']) )
  4. {
  5.  
  6.    $a=$_POST['ref'];
  7.    $b=$_POST['id'];
  8.  
  9.  
  10.   $resultado=mysql_select_db($db, $conexion);
  11.    if (!$resultado){
  12.    
  13.        echo "ERROR: Imposible seleccionar la base de datos $basedatos.<br>\n";
  14.        mysql_close($conexion);
  15.        exit;
  16.          }
  17.    else{
  18.      
  19.      }
  20.      $sql="select*from recetas where";
  21.          if ($a != '')
  22.          $sql .= " ref like '%$a%' and " ;
  23.          if ($b != '')
  24.          $sql .=" id = '$b' and "
  25.  
  26.  ";
  27.  
  28.          $sql .= " 1 = 1 order by id" ;
  29.          $res=mysql_query( $sql, $conexion);
  30.        if (!$res){
  31.         echo"error".mysql_error();
  32.         }
  33.        else
  34.     {
  35.         echo"<table align='center' border=2 cellpadding=10 bordercolor=gold>";
  36.         echo"<tr>
  37.          <td><h3>TITULO</h3></td>
  38.          <td><h3>AUTOR</h3></td>
  39.          <td><h3>PORTADA</h3></td>
  40.          <td></td>
  41.          
  42.          " ;
  43.         while($fila = mysql_fetch_array($res))
  44.             {
  45.  
  46.  
  47.              echo "<h3><tr><td><h4>$fila[id]</h4></td>
  48.                         <td><h4>$fila[ref]</h4></td>
  49.                         <td><img src='$fila[portada]'height='94' width='82'></td>
  50.                         <td><a href='$fila[post]'>saber más</a></td>
  51.                     </tr></h3>";
  52. //mysql_close($connect);
  53.  
  54.        }
  55.      echo"</table>";
  56.      
  57.   }
  58. //or die("error de insercion codigo de enfermedad o codigo de res no encontrado.".mysql_error()."<br>");
  59. }
  60. ?>
  #5 (permalink)  
Antiguo 16/10/2011, 07:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Hacer una busqueda entre dos valores

Realmente, por lo que se refiere a la base de datos, debes hacer lo que te recomiendan, un campo para número de habitaciones o dormitorios, un campo numérico, claro.

Luego te bastará con buscar así:
$sql= "SELECT campo1, campo2 FROM tutabla WHERE campo1 = $variable";

Pero parece que quieres establecer tú las categorías en el selector
ej.
1 1-3
2 3-5
3 4-6

Para ese caso pasas el valor del value del selector, llamémosle idnumhab

Ahora el trabajo lo haces en PHP y debes buscar ayuda en ese foro. Mediante programación preparas la parte de cadena del between de la consulta, con un switch, por ej.

en pseudocódigo:
idnumhab
en caso de que idnumhab = 1
cadena del between = ' AND habitaciones BETWEEN 1 AND 3'
en el caso de que idnumhab = 2
cadena del between = ' AND habitaciones BETWEEN 3 AND 5'

etc.

LUEGO unes las cadenas de consulta en una y la lanzas. Esta es la idea.
  #6 (permalink)  
Antiguo 16/10/2011, 09:40
 
Fecha de Ingreso: abril-2008
Mensajes: 348
Antigüedad: 16 años
Puntos: 1
Respuesta: Hacer una busqueda entre dos valores

Entindo la idea, pero llevarlo a la practica ni idea jajajaja

Ademas se plantea otro inconveniente, una veces sera el numero de habitaciones, otroas el criterio de busqueda sera otro campo distinto, o los dos al mismo tiempo...

Un saludo
  #7 (permalink)  
Antiguo 16/10/2011, 10:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Hacer una busqueda entre dos valores

Pero es que la cadena de búsqueda la controlas y conformas tú según los criterios elegidos por el cliente en los selectores, etc. Pero para eso pide ayuda en el foro PHP. Aquí sólo podemos decirte que es fácil controlar eso con la cadena de consulta.
Usando where ... and ... and (... or...), etc. Mediante PHP controlas la llegada de valores desde el formulario y configuras tu cadena de consulta de cuardo con ello. Pide ayuda allí.
  #8 (permalink)  
Antiguo 16/10/2011, 10:08
 
Fecha de Ingreso: abril-2008
Mensajes: 348
Antigüedad: 16 años
Puntos: 1
Respuesta: Hacer una busqueda entre dos valores

Gracias me mudo al aparatdo del php

Un saludo

Etiquetas: select
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:35.