Mi problema es que quiero construir un SELECT y por lo visto algo esta mal y no lo consigo.
El tema es el que sigue:
De un formulario paso un numero no definido de valores y segun estos valores construir el SELECT.
el mensaje de error es:
Cita:
Tengo que decir que si no selecciona algo del formulario lo que envia este es"%" menos en $_POST['modelo'] que envia "" (vacio).You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE coche.id_modelo = '20' AND modelo.id_modelo = '7' AND mar
El codigo es el que sigue:
Realizo las conexiones a la bd
Código PHP:
$condicion="WHERE ";
if ($_POST['marca']!="%"||$_POST['modelo']!=""){
$consulta=$condicion."coche.id_modelo = '".$_POST['modelo']."' AND modelo.id_modelo = '".$_POST['marca']."' AND marca.id_marca = '".$_POST['marca']."'";
}
if ($_POST['tipo']!="%"){
if (isset($consulta)){
$condicion="";
$consulta.=" and coche.id_tipo_coche=tipo_coche.id_tipo_coche";
}
else{
$consulta=$condicion."coche.id_tipo_coche=tipo_coche.id_tipo_coche";
}
}
if ($_POST['kms']!="%") {
if (isset($consulta)){
$condicion="";
$consulta.=" and coche.km_coche<=".$_POST['kms'];
}
else{
$consulta=$condicion." coche.km_coche<=".$_POST['kms'];
}
}
if ($_POST['presupuesto']!="%"){
if (isset($consulta)){
$condicion="";
$consulta.=" and coche.precio_coche<=".$_POST['presupuesto'];
}
else{
$consulta=$condicion." coche.precio_coche<=".$_POST['presupuesto'];
}
}
if ($_POST['antiguedad']!="%"){
if (isset($consulta)){
$condicion="";
$consulta.=" and coche.anio_coche>=".$_POST['antiguedad'];
}
else{
$consulta=$condicion." coche.anio_coche>=".$_POST['antiguedad'];
}
}
if ($_POST['combustible']!="%"){
if (isset($consulta)){
$condicion="";
$consulta.=" and coche.gasolina_coche = ".$_POST['combustible'];
}
else{
$consulta=$condicion." coche.gasolina_coche = ".$_POST['combustible'];
}
}
if ($_POST['marca']=="%"||$_POST['modelo']==""&&$_POST['combustible']=="%"&&$_POST['tipo']=="%"&&$_POST['kms']=="%"&&$_POST['presupuesto']!="%"&&$_POST['antiguedad']=="%"&&$_POST['combustible']=="%"){
echo "no ha seleccionado nada";
$condicion="";
}
$sql="SELECT * FROM marca, tipo_coche, modelo, coche $condicion $consulta";
$consulta_SQL=$sql;
mysql_select_db($database_automoviles, $automoviles);
$query_busc_coche = $consulta_SQL;
$busc_coche = mysql_query($query_busc_coche, $automoviles) or die(mysql_error());
$row_busc_coche = mysql_fetch_assoc($busc_coche);
$totalRows_busc_coche = mysql_num_rows($busc_coche);
do {
echo "id coche: ".$row_busc_coche['id_coche']."<br>";
echo "Marca: ".$row_busc_coche['nombre_marca']."<br>";
echo "modelo: ".$row_busc_coche['nombre_modelo']."<br>";
echo "tipo coche: ".$row_busc_coche['nombre_tipo_coche']."<br>";
echo "km:".$row_busc_coche['km_coche']."<br>";
echo "precio:". $row_busc_coche['precio_coche']."<br>";
echo "Año del vehiculo:".$row_busc_coche['anio_coche']."<br>";
echo "Combustible: ". $row_busc_coche['gasolina_coche']."<br>";
echo "Tipo de coche:". $row_busc_coche['id_tipo_coche']."<br>";
} while ($row_busc_coche = mysql_fetch_assoc($busc_coche)); ?>
Gracias