Foros del Web » Programando para Internet » PHP »

buscador avanzado de vehiculos....

Estas en el tema de buscador avanzado de vehiculos.... en el foro de PHP en Foros del Web. Saludos amigos,... Estoy realizando un Scripts para la venta de Vehiculos, la cual en la parte principal tendra un buscador con lo siguiente, y esto ...
  #1 (permalink)  
Antiguo 01/02/2008, 15:16
 
Fecha de Ingreso: diciembre-2007
Mensajes: 41
Antigüedad: 16 años, 4 meses
Puntos: 0
De acuerdo buscador avanzado de vehiculos....

Saludos amigos,...

Estoy realizando un Scripts para la venta de Vehiculos, la cual en la parte principal tendra un buscador con lo siguiente, y esto es lo qwue quiero que me den sus opiniones y ayuda.

El Buscador Contiene select como estos:

ciudad / marca / modelo / precio_desde / precio_hasta / year_desde/ year_hasta / estado

-> estos son los conseptos de busqueda, y este es el Script que recoje los datos por GET

Código PHP:
<? $ciudad $_GET['ciudad'];
$marca $_GET['marca'];
$modelo $_GET['modelo'];
$precio_desde $_GET['precio_desde'];
$precio_hasta $_GET['precio_hasta'];
$year_desde $_GET['year_desde'];
$year_hasta $_GET['year_hasta'];
$estado $_GET['estado'];

// CIUDAD...........................................
if($ciudad "todas"){ $ciudad_mos " "; }
else { 
$ciudad_mos "AND ciudad like '%$ciudad%' ";}
// PRECIOS..........................................
if($precio_desde "0"){ $precio_des1 " "; }
else { 
$precio_des1 "AND `precio` >$precio_desde";}
if(
$precio_hasta "0"){ $precio_has1 " "; }
else { 
$precio_has1 "AND `precio` <$precio_hasta";}
// AÑO..............................................
if($year_desde "0"){ $year_des_mos " "; }
else { 
$year_des_mos "AND `year` >='$year_desde'";}
if(
$year_hasta "0"){ $year_has_mos " "; }
else { 
$year_has_mos "AND `year` >='$year_hasta'";}
// ESTADO DEL VEHICULO............................
if($estado "todos"){ $estado_mos " "; }
else { 
$estado_mos "AND estado ='$estado'";}
// MARCA Y MODELO.................................
//if($marca = "todas"){ $marca_modelo_mos = " "; }
//else { 
$marca_modelo_mos " AND marca ='$marca' AND modelo ='$modelo' ";//}
?>    
<?
  
// este es el SELECT
$
sql2 "SELECT * FROM vehiculos WHERE status='yes'
$marca_modelo_mos  
$ciudad_mos  
$precio_des1
$precio_has1
$year_des_mos
$year_has_mos
$estado_mos 
$busq_ciudad $ordenar $paginar"
?>

entonces el problema es que cuando busco en precio->desde->hasta no me da lo esapto y tampoco año->desde->hasta

creo q hay algo mar en el SELECT , si alguien me ayuda a mejorarlo se lo agradeceria..

un Ejemplo del buscador -> www.carros.com.do
gracias de ante mano.
  #2 (permalink)  
Antiguo 01/02/2008, 16:41
 
Fecha de Ingreso: enero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: buscador avanzado de vehiculos....

Así echando un vistazo muy rápido lo que más me ha llamado la atención es esto:

AND `precio` >$precio_desde

¡No saneas esa cadena en ninguna parte! Cualquiera podría ponerte código SQL en esa variable y fastidiarte la BD. Te recomiendo que uses $precio_desde = doubleval($precio_desde); y sobre todo, nunca dejes nada sin entrecomillar en las consultas SQL, aunque sean números.

Y bueno, no sólo esa cadena, si no que no saneas ninguna. Muy importante, siempre que recibas parámetros introducidos por el usuario, ¡trátalos! No te fies nunca de lo que introduce el usuario. Deberías usar doubleval para cada parámetro si es un número con decimales, intval si es un entero y mysql_escape_string si son cadenas.
  #3 (permalink)  
Antiguo 02/02/2008, 07:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 41
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: buscador avanzado de vehiculos....

lo de las comillas entendi

AND `precio` > '$precio_desde'

algo asi
pero que no "saneas" quiere desir que no defino esa variable, ho ???


quiero saber si hay una forma de buscar en una base de datos numeros desde -> hasta

por ejemplo del Año 90 al 2000 , que me muestre 90,91,92,93,...... 2000

me doy a entender ???
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 13:23.