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úsqueda Avanzada</a><br/>Selecciona tu delegación<br/>
<select name="delegacion" id="delegacion">
<option value="">Selecciona ubicación</option>
<option value="Alvaro Obregón">Alvaro Obregón</option>
<option value="Azcapotzalco">Azcapotzalco</option>
<option value="Benito Juárez">Benito Juarez</option>
<option value="Coyoacán">Coyoacá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.
$trim= trim($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
//////////////////////////////////////////////////////////////////////////////////////////
$palabras= sizeof(explode(" ", $trim));
if ($palabras > 1 ){
$_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.