Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/09/2010, 12:04
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 6 meses
Puntos: 214
Respuesta: Buscar Precio - No puedo resolverlo

Cita:
Iniciado por ingleonidas Ver Mensaje
Morti, puse los echo (fijate si lo hice bien, como lo sugeriste)
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) {
$precio=$_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   
echo "$precio";
$sql .= " AND precioVenta between $precio1 and $precio2 = '" intval($_POST['precio']) . "'";
echo 
"$sql";
}
}
$sql .= " ORDER BY ciudades.nombre ASC";
echo 
"$sql";
$tabla mysql_query($sql);
while (
$registro mysql_fetch_array($tabla)) {
?>
Lo que muestra para a) echo "$precio"; b) echo "$sql" (del between);
"mostrar todos": nada

"100000-200000": a) 100000-200000 ; b)
Código:
SELECT prueba.*, ciudades.* FROM prueba, ciudades WHERE prueba.idciudad = ciudades.id AND prueba.titulo LIKE '%%' AND precioVenta between 100000 and 200000 = '100000'
"200000-300000": a) 200000-300000 ; b)
Código:
SELECT prueba.*, ciudades.* FROM prueba, ciudades WHERE prueba.idciudad = ciudades.id AND prueba.titulo LIKE '%%' AND precioVenta between 200000 and 300000 = '200000'
y para el buscador total
Código PHP:
$sql .= " ORDER BY ciudades.nombre ASC";
echo 
"$sql"
tenemos como resultado:

"mostrar todos":
Código:
SELECT prueba.*, ciudades.* FROM prueba, ciudades WHERE prueba.idciudad = ciudades.id AND prueba.titulo LIKE '%%' ORDER BY ciudades.nombre ASC
"100000-200000":
Código:
SELECT prueba.*, ciudades.* FROM prueba, ciudades WHERE prueba.idciudad = ciudades.id AND prueba.titulo LIKE '%%' AND precioVenta between 100000 and 200000 = '100000' ORDER BY ciudades.nombre ASC
"200000-300000":
Código:
'SELECT prueba.*, ciudades.* FROM prueba, ciudades WHERE prueba.idciudad = ciudades.id AND prueba.titulo LIKE '%%' AND precioVenta between 200000 and 300000 = '200000' ORDER BY ciudades.nombre ASC
Espero responder a tu sugerencia.
Saludos cordiales
Leonidas
bueno
revisando los querys, usas el like pero no vienen datos (imagino porque no escribiste nada en los campos de búsqueda)
y en el between tienes esto

Código MySQL:
Ver original
  1. consulta 1     AND precioVenta between 100000 and 200000 = '100000'
  2. consulta2      AND precioVenta between 200000 and 300000 = '200000'
  3. consulta4      AND precioVenta between 100000 and 200000 = '100000' ORDER BY ciudades.nombre ASC
  4. consulta5      AND precioVenta between 200000 and 300000 = '200000' ORDER BY ciudades.nombre ASC

y en primera, comparas números contra cadenas según veo, y en segundo estas comparandolo dentro del between,
para que eso??
nos comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 19/09/2010 a las 12:53 Razón: add_c