Cita:
Iniciado por stramin no sirve, si no pones marca o modelo pero pones algo en todos los demás campos te va a quedar así:
lo que te dará error ya que no puedes poner mas de un WHERE en tu consulta.
además creo que te complicaste infinitamente con la primera parte de la sentencia:
y luego en PHP, tienes variables no declaradas si no se ha seleccionado marca o modelo:
Código PHP:
Ver originalSELECT *$marcamodeloprint $were $marcamodeloprintdos $tipobuscaprint $esloradeprint $esloraaprint $preciodeprint $precioaprint $anodeprint $anoaprint ORDER BY $orden asc LIMIT $comienzo, $cant_reg
alargas mucho tu código innecesariamente para hacer algo tan simple como comparar una cosa con otra.
...
PUES LLEVABAS TODA LA RAZON DEL MUNDO!!!
AL FINAL TE HICE CASO Y PROBE CON TU TEXTO Y VUALA! FUNCIONO A LA PERFECCION.
MUCHISIMAS GRACIAS
Código PHP:
if ($marcamodelo == "Buscar marca o modelo"){
$marcamodelo = "";
}
$wheres=""; //inicias una variable vacía
$wheres = "(marca LIKE '%".$marcamodelo."%' OR modelo LIKE '%".$marcamodelo."%')"; // no necesitas UCASE cuando usas like
// en la variable $wheres guardas tu consulta
if ($tipobusca){ // en vez de ver si es falsa revisa que sea verdadera
if($wheres) $wheres.=" AND"; // solo si ya hay datos agregas AND
$wheres.= " tipo LIKE '$tipobusca'"; //en vez de asignar diferentes variables usas una con todas
}
if ($eslorade){ // puedes saber si una variable tiene algo dejandola sola en el if
if($wheres) $wheres.=" AND"; //debes repetirlo en todas
$wheres.= " eslora >= $eslorade"; //si es texto no olvides las comillas
}// de esta forma no necesitas poner }else{ y te ahorras lineas
if ($esloraa){
if($wheres) $wheres.=" AND"; // no olvides el espacio antes de AND
$wheres.= " eslora <= $esloraa"; // y el espacio antes de cada condicion
}
if ($preciode){ // una variable es falsa si es: 0, NULL, "", false y "0"
if($wheres) $wheres.=" AND"; // el .= sirve para agregar texto
$wheres.= " precio >= $preciode";
}
if ($precioa){
if($wheres) $wheres.=" AND";
$wheres.= " precio <= $precioa";
}
if ($anode){
if($wheres) $wheres.=" AND";
$wheres.= " ano >= $anode";
}
if ($anoa){
if($wheres) $wheres.=" AND";
$wheres.= " ano <= $anoa";
}
// ahora aqui solo pones $where
$sql2 = "SELECT * FROM mibarcobd WHERE $wheres ORDER BY $orden asc LIMIT $comienzo, $cant_reg";