Pues lo primero que tienes que hacer... es armarte las tablas en la base de datos por ejemplo carros, marca, modelo, categorias, carros2categorias.. este seria como un ejemplo para los dropmenus de ajax y conjugar las diferentes tablas en php... para este tipo de buscas es bueno usar match en sql.. fulltext, ya a la hora que tengas todas tus tablas echas ya puedes empezar con php puede ser con una funcion algo asi
Código PHP:
<?php
function encontrar_carro($query_tipo = NULL, $query_marca = NULL, $query_modelo = NULL){
db_conecion();
$select = "SELECT
carros.id
etc,
etc ";
$from = "FROM
carros ";
$where = "WHERE
carros.id > 0 ";
$order = " ORDER BY cars.id DESC";
if(!empty($query_tipo)){
$select .= sprintf(", MATCH(title,location,description)
AGAINST ('%s' IN BOOLEAN MODE)
AS RELEVANSE ", mysql_real_escape_string($query_tipo)
);
$where .= sprintf("AND MATCH(title,location,description) AGAINST
('%s' IN BOOLEAN MODE) ",
mysql_real_escape_string($query_tipo)
);
$order = " ORDER BY relevance DESC";
}
if(!empty($query_marca)){
$from .= ", carros2categorias ";
$where .= sprintf("AND carros.id = carros2categorias.carro.id
AND carros2categorias.categoria_id = '%s'",
mysql_real_escape_string($query_marca)
);
}
if(!empty($query_modelo)){
$from .= ", carros2modelo ";
$where .= sprintf("AND carros.id = carros2modelo.carro.id
AND carros2modelo.modelo_id = '%s'",
mysql_real_escape_string($query_modelo)
);
}
$query = $select.$from.$where.$order;
$result = mysql_query($query);
$result = db_result_to_array($result);
return $result;
}
function db_result_to_array($result){
$res_array = array();
for($count=0; $row = mysql_fetch_array($result); $count++){
$res_array[$count] = $row;
}
return $res_array;
}
?>
Código:
Te aclaro que esto es solo un ejemplo, para que te sirva de guía ni siquiera lo e probado lo saque de un buscador que tengo ya echo... pero con otros parámetros