Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/05/2013, 03:42
Anisakys
 
Fecha de Ingreso: mayo-2013
Ubicación: Valladolid
Mensajes: 8
Antigüedad: 11 años
Puntos: 0
Pregunta Problema con mysql_fetch_assoc de un buscador

Chicos necesito ayuda, llevo dos días dando vueltas al fallo de este código pero no encuentro el error.

La cosa es que tengo un buscador creado de varios campos, quiero que el los campos se puedan combinar entre ellos eligiendo uno o varios y si no elige nada que salte un error diciendo que no se han encontrado resultados.

Esta última parte sale correcta, mi problema comienza cuando elijo uno de los campos ya que el formulario se envía a un archivo busca.php pero me dice que la sentencia sql no es correcta.

El caso es que si meto el valor de la variable (de uno de los campos por ejemplo provincia) no me da problemas esa misma sentencia sql.

Supongo que será cuestión de comillas pero no logro encontrar el error y ya se sabe que 4 ojos ven más que dos y cuando nos obcecamos con una cosa malo...

Os dejo aquí el código para que le echéis un vistazo y me digáis qué puede ser.

if(!empty ($_POST['comautonoma']) or !empty($_POST['provincia']) or !empty($_POST['preciocat']) or !empty($_POST['codigopostal'])) {

codigo hml de la web

//Conectamos a la bd
$servidor="localhost";
$user="usuario";
$pass="pass";
$bd="basedatos";
$conexion=mysql_connect($servidor,$user,$pass) or die (mysql_error("La base de datos no está disponible"));

mysql_select_db($bd,$conexion);

$comunidad=$_POST['comautonoma'];
$provincia=$_POST['provincia'];
$preciocat=$_POST['preciocat'];
$codigopost=$_POST['codigopostal'];

if(isset($comunidad) && $comunidad!="")
{
$where[] = "comunidadautonoma = '".$comunidad."'";
}
if(isset($provincia) && $provincia !="")
{
$where[] = "provincia =$provincia";
}
if(isset($preciocat) && $preciocat !="")
{
$where[] = "preciocat = '".$preciocat."'";
}
if(isset($codigopost) && $codigopost !="")
{
$where[] = "codigopostal = '".$codigopost."'";
}
$consulta = "SELECT * FROM geriatricos WHERE '1'='1'".implode(" AND ",$where)." ORDER BY RAND() LIMIT 10";

$resultados= mysql_query($consulta, $conexion)or die(mysql_error());

while ($row=mysql_fetch_assoc($resultados)){
$id=$row['id_residencia'];
echo "<a target=\'_blank\' href='detallesres.php?id=$id'>$row[nombre]</a><br/><br/>";}


} else
{
echo header("Location: buscador.php?error=1");

}

Este es el error que me lanza:

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 'provincia =.Burgos ORDER BY RAND() LIMIT 10' at line 1