Foros del Web » Programando para Internet » PHP »

AYUDA! Ultima Parte Buscador

Estas en el tema de AYUDA! Ultima Parte Buscador en el foro de PHP en Foros del Web. Muy buenas noches mis estimados, luego de trabajar solo he llegado aqui a consultar lo que no se. La situacion es la siguiente: tengo un ...
  #1 (permalink)  
Antiguo 29/07/2010, 20:37
 
Fecha de Ingreso: abril-2010
Mensajes: 87
Antigüedad: 14 años
Puntos: 1
Exclamación AYUDA! Ultima Parte Buscador

Muy buenas noches mis estimados, luego de trabajar solo he llegado aqui a consultar lo que no se. La situacion es la siguiente: tengo un buscador avanzado de una inmobiliaria donde por el momento se puede buscar por texto + ciudad + ambientes. El tema que no se como agregarle la busqueda por rango de precios.
Dejo el codigo para que me puedan echar una mano.
Buscador:
Código PHP:
<form name="form1" method="post" action="buq2.php">
    <label>Buscar:
    <input type="text" name="txtBusqueda" id="txtBusqueda">
    Ciudad:
    <select name="selCiudad" id="selCiudad">
        <option value="-1" selected>Todas</option>
<?php
    $tablaciudades 
mysql_query("SELECT * FROM ciudades ORDER BY nombre DESC"); // Seleccionamos las ciudades de la tabla ciudades
    
while ($registrociudad mysql_fetch_array($tablaciudades)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
        <option value="<?php echo $registrociudad['id']; ?>"><?php echo $registrociudad['nombre']; ?></option>
<?php
    
// termina la zona de repeticion
    
mysql_free_result($tablaciudades); // se libera la memoria usada por la tabla
?>
    </select>
    Ambientes: 
<select name="selAmbientes" id="selAmbientes"> 
<option value="-1" selected>Todos</option>
<?php //seleccion de ambientes
for($i=1;$i<=10;$i++) {
?>
<option value="<?php echo $i;?>"><?php echo $i?></option>
<?php
}
?>
</select>
Precio Venta (solo por poner algo esta esto): 
<select name="edad"> 
<option value="">Mostrar Todos</option> 
<option value="">Edad 10 a 20</option> 
<option value="">Edad 21 a 30</option> 
</select>
Busqueda:
Código PHP:
<?php //Esto es lo que devuelve segun los datos de la tabla de arriba
$sql "SELECT prueba.*, ciudades.* FROM prueba, ciudades WHERE prueba.idciudad = ciudades.id ";
if (isset(
$_POST['txtBusqueda'])) {
    
$sql .= " AND prueba.titulo LIKE '%" $_POST['txtBusqueda'] . "%' ";
    if (
intval($_POST['selCiudad']) > 0) {
        
$sql .= " AND prueba.idciudad = '" intval($_POST['selCiudad']) . "'";
    }
    if (
intval($_POST['selAmbientes']) > 0) {
$sql .= " AND Habitaciones = '" intval($_POST['selAmbientes']) . "'";
}
    if (
intval($_POST['selAmbientes']) > 0) {
$sql .= " AND Habitaciones = '" intval($_POST['selAmbientes']) . "'";
}
}
$sql .= " ORDER BY ciudades.nombre ASC";
$tabla mysql_query($sql);
while (
$registro mysql_fetch_array($tabla)) {
?>
Las BD con sus campos son:
1_prueba; Campos: ID_Prueba, Nombre, Apellidos,Titulo,Mtscuadrados,Banos,Habitaciones,i dCiudad,precioVenta,precioRenta,tipoInmueble,Descr ipcion,fechaIng,imagen
2_ciudades;Campos: id,nombre

¿como hago la busqueda por rango de precios (bd: precioVenta)?
  #2 (permalink)  
Antiguo 29/07/2010, 21:21
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: AYUDA! Ultima Parte Buscador

bueno de verdad estoy medio dormido y pero segun entndi lo que kieres es buscar por rango puedes usar el comando BETWEEN en la condicion de tu consulta sql yo lo uso mas que todo para rango de fechas ej
Código PHP:
$query=mysql_query("SELECT campo FROM tabla WHERE fecha BETWEEN '$fecha1' and '$fecha2'") or die (mysql_error()); 
ahi me trae los datos que esten en ese rango de fecha adaptalo para el rango que kieras usar suerte espero haberte ayudado
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 29/07/2010, 21:29
 
Fecha de Ingreso: abril-2010
Mensajes: 87
Antigüedad: 14 años
Puntos: 1
Respuesta: AYUDA! Ultima Parte Buscador

Carlos, muchisimas gracias por tu orientacion. Te comento que he googleado bastante antes de preguntar (prefiero molestar lo menos posible) y comprendo como funciona en BETWEEN, lo que no se es como ponerlo en la seleccion de la busqueda.
¿Como lo ingreso para que se relacione con la busqueda?
Código PHP:
<form name="form1" method="post" action="buq2.php">
    <label>Buscar:
    <input type="text" name="txtBusqueda" id="txtBusqueda">
    Ciudad:
    <select name="selCiudad" id="selCiudad">
        <option value="-1" selected>Todas</option>
<?php
    $tablaciudades 
mysql_query("SELECT * FROM ciudades ORDER BY nombre DESC"); // Seleccionamos las ciudades de la tabla ciudades
    
while ($registrociudad mysql_fetch_array($tablaciudades)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
        <option value="<?php echo $registrociudad['id']; ?>"><?php echo $registrociudad['nombre']; ?></option>
<?php
    
// termina la zona de repeticion
    
mysql_free_result($tablaciudades); // se libera la memoria usada por la tabla
?>
    </select>
    Ambientes: 
<select name="selAmbientes" id="selAmbientes"> 
<option value="-1" selected>Todos</option>
<?php //seleccion de ambientes
for($i=1;$i<=10;$i++) {
?>
<option value="<?php echo $i;?>"><?php echo $i?></option>
<?php
}
?>
</select>
Precio Venta: 
<select name="edad"> 
<option value="">Mostrar Todos</option> 
<option value="">Edad 10 a 20</option> 
<option value="">Edad 21 a 30</option> 
</select> 


    </label>
    <input type="submit" name="cmdBuscar" id="cmdBuscar" value="IR">
</form>
Muchas gracias y que descanses!
Saludos cordiales...
  #4 (permalink)  
Antiguo 29/07/2010, 21:39
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
De acuerdo Respuesta: AYUDA! Ultima Parte Buscador

bueno tu tienes un select que esta en el precio de venta pero lo tienes con edades, lo bueno puede que ponga el precio en el select si es con por rango siempre especifique los rangos asi
Código:
<select name="edad"> 
<option value="">Mostrar Todos</option> 
<option value="10-20">Edad 10 a 20</option> 
<option value="21-30">Edad 21 a 30</option> 
</select>
luego cuando recibas los datos separa el valor que te llegue con un explode asi
Código PHP:
$edad=$_POST['edad']; # este es tu select ponle un nombre asociado jaja
$ed=explode("-",$edad); #esto te crea un array con la separacion del rango 
$precio1=$ed[0]; #obtienes el primer parametro del rango 
$precio2=$ed[1];  #obtienes el segundo parametro del rango 
$query=mysql_query("SELECT campo FROM tabla WHERE precio BETWEEN '$precio1' and '$precio2'") or die (mysql_error()); 
espero que te sirva pruebalo y adaptalo bien ya que como te dige estoy medio dormido y puede que me halla pelado en algunas cosas suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 29/07/2010, 21:57
 
Fecha de Ingreso: abril-2010
Mensajes: 87
Antigüedad: 14 años
Puntos: 1
Respuesta: AYUDA! Ultima Parte Buscador

Carlos, creo que ya estamos cerca. Dormido pero dandote cuenta que debo ponerle el select acorde a lo que busco jajaja "edad" jaja. Lo estoy dejando asi:
Código PHP:
</select>

Precio Venta
<
select name="precio"
<
option value="">Mostrar Todos</option
<
option value="10000-20000">Edad 10000 a 20000</option
<
option value="20000-30000">Edad 20000 a 30000</option
</
select
y donde recibo la busqueda dentro de los if quedaria:
Código PHP:
$edad=$_POST['precio']; # ya esta el nombre asociado jaja 
$ed=explode("-",$precio); #esto te crea un array con la separacion del rango GRACIAS, NO CONOCIA ESA PROPIEDAD   
$precio1=$ed[0]; #obtienes el primer parametro del rango  
$precio2=$ed[1];  #obtienes el segundo parametro del rango  
$query=mysql_query("SELECT precioVenta FROM prueba WHERE precio BETWEEN '$precio1' and '$precio2'") or die (mysql_error()); 
Carlos, aca en argentina tmb es tarde y me voy a ir a descansar que mañana tengo una jornada laboral extensa. Estare haciendo las pruebas mañanas.
A la nochecita te comento como me fue, porque son ing idustrial, y esto de PHP Y MySQL lo hago por hobbie
Mil gracias y que descanses...
gracias a todos!
Leonidas
  #6 (permalink)  
Antiguo 29/07/2010, 22:02
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: AYUDA! Ultima Parte Buscador

Cita:
Código HTML:
Ver original
  1.  
  2. Precio Venta:
  3. <select name="precio">
  4. <option value="">Mostrar Todos</option>
  5. <option value="10000-20000">Edad 10000 a 20000</option>
  6. <option value="20000-30000">Edad 20000 a 30000</option>
le cambiaste el nombre al select pero dejaste en el texto edad jaja bueno la consulta a simple vista se ve bien y esa funcion es para separar cadenas es muy util, bueno buena suerte yo tambien voy a acostarme tengo tambien q trabajar tempranito suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 29/07/2010, 22:06
 
Fecha de Ingreso: abril-2010
Mensajes: 87
Antigüedad: 14 años
Puntos: 1
Respuesta: AYUDA! Ultima Parte Buscador

jajaja! Estoy cansao...tenes razon!
Ahi va:

Código PHP:
</select
Precio Venta
<
select name="precio"
<
option value="">Mostrar Todos</option
<
option value="10000-20000">$10000 a $20000</option
<
option value="20000-30000">$20000 a $30000</option
</
select
Me voy a dormir.
Que desanses, estamos en contacto mañana
Mil gracias nuevamente
gracias a todos
Leonidas
  #8 (permalink)  
Antiguo 31/07/2010, 09:45
 
Fecha de Ingreso: abril-2010
Mensajes: 87
Antigüedad: 14 años
Puntos: 1
Respuesta: AYUDA! Ultima Parte Buscador

Buenos dias a Carlos y a todos, les comento que estoy aqui poniendo en marcha el codigo sugerido y.. si bien "no se rompe o desconecta de la bd", tampoco me trae el resultado segun el precio (Pero si realiza la busqueda correctamente con los otros parametros). La programacion esta asi:
Buscador:
Código PHP:
<form name="form1" method="post" action="buq2.php">
    <label>Buscar:
    <input type="text" name="txtBusqueda" id="txtBusqueda">
    Ciudad:
    <select name="selCiudad" id="selCiudad">
        <option value="-1" selected>Todas</option>
<?php
    $tablaciudades 
mysql_query("SELECT * FROM ciudades ORDER BY nombre DESC"); // Seleccionamos las ciudades de la tabla ciudades
    
while ($registrociudad mysql_fetch_array($tablaciudades)) { // Vamos a repetir una Option (opcion), de la Lista Desplegable, por cada ciudad en la tabla
?>
        <option value="<?php echo $registrociudad['id']; ?>"><?php echo $registrociudad['nombre']; ?></option>
<?php
    
// termina la zona de repeticion
    
mysql_free_result($tablaciudades); // se libera la memoria usada por la tabla
?>
    </select>
    Ambientes: 
<select name="selAmbientes" id="selAmbientes"> 
<option value="-1" selected>Todos</option>
<?php //seleccion de ambientes
for($i=1;$i<=10;$i++) {
?>
<option value="<?php echo $i;?>"><?php echo $i?></option>
<?php
}
?>
</select>
</select>  
Precio Venta:  
<select name="precio">  
<option value="">Mostrar Todos</option>  
<option value="10000-20000">$10000 a $20000</option>  
<option value="20000-30000">$20000 a $30000</option>  
</select>  
    </label>
    <input type="submit" name="cmdBuscar" id="cmdBuscar" value="IR">
</form>
Consulta a la bd:
Código PHP:
<?php //Esto es lo que devuelve segun los datos de la tabla de arriba
$sql "SELECT prueba.*, ciudades.* FROM prueba, ciudades WHERE prueba.idciudad = ciudades.id ";
if (isset(
$_POST['txtBusqueda'])) {
    
$sql .= " AND prueba.titulo LIKE '%" $_POST['txtBusqueda'] . "%' ";
    if (
intval($_POST['selCiudad']) > 0) {
        
$sql .= " AND prueba.idciudad = '" intval($_POST['selCiudad']) . "'";
    }
    if (
intval($_POST['selAmbientes']) > 0) {
$sql .= " AND Habitaciones = '" intval($_POST['selAmbientes']) . "'";
}
    if (
intval($_POST['precio']) > 0) {
$edad=$_POST['precio']; 
$ed=explode("-",$precio);     
$precio1=$ed[0];    
$precio2=$ed[1];     
$sql.=mysql_query("SELECT precioVenta FROM prueba WHERE precio BETWEEN '$precio1' and '$precio2'") or die (mysql_error()); 
}
}
$sql .= " ORDER BY ciudades.nombre ASC";
$tabla mysql_query($sql);
while (
$registro mysql_fetch_array($tabla)) {
?>
Gracias a todos!!!
Saludos cordiales, Leonidas

Etiquetas: buscadores, ultimo
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 08:01.