Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/01/2011, 20:40
lovecom45
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 15 años, 7 meses
Puntos: 2
Filtrar busqueda FULLTEXT MySQL

Hola compañer@s buen día!

Ya me desesperé buscando una forma para poder filtrar una busqueda dependiéndo de la ubicacion del usuario. Me explico

El usuario entra a un buscador donde por ejemplo "cafeterias" y selecciona su ubicación que selecciona de un dropbox, por ejemplo "benito juarez", con estos dos datos debe de mostrar todas las cafeterias de la delegación benito juarez, el problema está en que saca todos los resultados que contengan cafeterias y no se filtra por "ubicacion". ¿¿Si me explico??

Estos son los códigos de la búsqueda que uso :

EL formulario de búsqueda:

Código HTML:
<form action="xbusqueda.php" method="get">
            <div id="search_advanced_container"><a href="avanzada/index.php" class="search_advanced_text" >B&uacute;squeda Avanzada</a><br/>Selecciona tu delegación<br/>
              <select name="delegacion" id="delegacion">
            <option value="">Selecciona ubicación</option>
			<option value="Alvaro Obreg&oacute;n">Alvaro Obreg&oacute;n</option>
            <option value="Azcapotzalco">Azcapotzalco</option>
            <option value="Benito Juárez">Benito Juarez</option>
            <option value="Coyoacán">Coyoac&aacute;n</option>
            <option value="Cuajimalpa">Cuajimalpa</option>
            <option value="Cuahutemoc">Cuahutemoc</option>
            <option value="Gustavo A. Madero">Gustavo A. Madero</option>
            <option value="Iztacalco">Iztacalco</option>
            <option value="Iztapalapa">Iztapalapa</option>
            <option value="Magdalena Contreras">Magadalena Contreras</option>
            <option value="Miguel Hidalgo">Miguel Hidalgo</option>
            <option value="Milpa Alta">Milpa Alta</option>
            <option value="Tlahuac">Tlahuac</option>
            <option value="Tlalpan">Tlalpan</option>
            <option value="Venustiano Carranza">Venustiano Carranza</option>
            <option value="Xochimilco">Xochimilco</option>
          </select>
</div>
            <table width="346" height="35" border="0" align="right" cellpadding="0" cellspacing="0" class="tab_form">
              <tr>
                <td width="253"><div id="search_input_container">
                  <label>
                  <input name="dxk4598-89345XKSZ" type="text" id="dxk4598-89345XKSZ" class="maller_input" />
                  </label>
                </div></td>
                <td width="93"><div id="contenedor_button"><input name="x389GT45KHD-8YTRID" type="submit" class="maller_bttn" id="x389GT45KHD-8YTRID"  value="" onfocus="if($('searchform_focused').value==0){ $('searchform_input').value=''; $('searchform_focused').value=1; }"; /></div></td>
              </tr>
            </table>
            </form> 


Este es el codigo que uso en la página que procesa el formulario y realiza la búsqueda. (obviamente con la conexión a la base de datos antes de esto)

Código PHP:


$campo 
=$_GET['dxk4598-89345XKSZ'];// aquí trae lo que introdujo el usuario
$delegacion =$_GET['delegacion']; // aquí selecciona el usuario su ubicación
$ubicacion" ".$delegacion// este lo usé para cuando seleccione el usuario una ubicación ya que puede o no  seleccionar ubicación.
$buskeda $campo.$ubicacion//aquí concateno lo que busca el usuario y su ubicación.
$trimtrim($buskeda);// aquí quita los espacios al final de la cadena que introdujo el usuario ya que si no no me funciona el LIKE del eseif
//////////////////////////////////////////////////////////////////////////////////////////
$palabrassizeof(explode(" "$trim));

if (
$palabras ){
$_pagi_sql="SELECT * FROM empresas WHERE MATCH (empresa, giro, delegacion) AGAINST ('$trim') ORDER BY paquete DESC ";
$echo " fulltext";
            }
elseif (
$palabras ==1){

$_pagi_sql="SELECT * FROM empresas WHERE empresa LIKE '%$trim%' OR giro like '%$trim%'  ORDER BY paquete DESC"
$echo " LIKE";                


Espero haberme explicado y pido su ayuda Gracias de antemano.