Hola a todos:
 
Pues como no puedo hacer una busqueda en modo booleano porque mi m...de servidor tiene una m...de version de mysql, pues estoy intentando hacer un buscador complejo y me estoy volviendo loca.
Este es mi código y no funciona:
 
                          <?
//nos conectamos a mysql
$cnx = conectar ();
 
//inicializo el variables y recibo cualquier cadena que se desee buscar
if ($_GET["provincia"]!=""){
	$txt_provincia = $_GET["provincia"];
}
 
if ($_GET["localidad"]!=""){
	$txt_localidad = $_GET["localidad"];
}
 
if ($_GET["busqueda"]!=""){
    $txt_busqueda=explode(" ", $_GET["busqueda"]); 
}
if ($_GET["busqueda"]==""){
$_pagi_sql = "SELECT id,denominacion,imagen,telefono,movil,breve,direcc  ion,provincia,localidad,categoria,descripcion,enla  ce FROM empresas WHERE provincia = '" . $txt_provincia ."' AND localidad = '" . $txt_localidad ."' And deshabilitar = '' ORDER BY tipo DESC,denominacion ASC";
}else{
$_pagi_sql = "SELECT id,denominacion,imagen,telefono,movil,breve,direcc  ion,provincia,localidad,categoria,descripcion,enla  ce FROM empresas WHERE provincia = '" . $txt_provincia ."' AND localidad = '" . $txt_localidad ."' AND ";
 
for(@reset($txt_busqueda); list(, $palabra) = @each($txt_busqueda);
$_pagi_sql .= 'AND ') {
if($palabra!=""){
$_pagi_sql .= "categoria LIKE '%$palabra%' "; 
}else{
$_pagi_sql .= "categoria LIKE '%*%' "; 
}
} 
$_pagi_sql = substr($_pagi_sql,0,-4);
 
$_pagi_sql .= " OR";
for(@reset($txt_busqueda); list(, $palabra) = @each($txt_busqueda);
$_pagi_sql .= 'AND ') {
if($palabra!=""){
$_pagi_sql .= " denominacion LIKE '%$palabra%' "; 
}else{
$_pagi_sql .= "denominacion LIKE '%*%' "; 
}
}
$_pagi_sql = substr($_pagi_sql,0,-4); 
 
$_pagi_sql .= " OR";
for(@reset($txt_busqueda); list(, $palabra) = @each($txt_busqueda);
$_pagi_sql .= 'AND ') {
if($palabra!=""){
$_pagi_sql .= " breve LIKE '%$palabra%' "; 
}else{
$_pagi_sql .= "breve LIKE '%*%' "; 
}
}
$_pagi_sql = substr($_pagi_sql,0,-4); 
$_pagi_sql .="And deshabilitar = '' ORDER BY tipo DESC,denominacion ASC";
}
y luego un bonito while que recorre la base de datos y me saca los resultados.
El problema es que si busco funerarias en provincia madrid y localidad alcalá me saca funerarias en torrejon y no se por qué. Este es el sql real que busca en la base de datos:
SELECT id,denominacion,imagen,telefono,movil,breve,direcc  ion,provincia,localidad,categoria,descripcion,enla  ce FROM empresas WHERE provincia like '%Madrid%' AND localidad like '%Alcalá de Henares%' AND categoria LIKE '%cementerio%' OR denominacion LIKE '%cementerio%' OR breve LIKE '%cementerio%' And deshabilitar = '' ORDER BY tipo DESC,denominacion ASC.
 
No se que es lo que hago mal, porque en teoria no debería sacar nada que no estuviera en Madrid y Alcalá de Henares...
 
Espero que podais ayudarme.
Un saludo a todos 
  
 
