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.