Foros del Web » Programando para Internet » PHP »

Filtrar busqueda FULLTEXT MySQL

Estas en el tema de Filtrar busqueda FULLTEXT MySQL en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/01/2011, 20:40
 
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.
  #2 (permalink)  
Antiguo 06/01/2011, 20:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Filtrar busqueda FULLTEXT MySQL

entonces el filtro deberías aplicarlo solo en la columna que especifica la ubicación, ya que tu estas empleando otras columnas...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/01/2011, 20:47
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Filtrar busqueda FULLTEXT MySQL

hola hermano, oye no entiéndo, me puedes decir cómo hacerlo ???

O sea modifico el WHERE MATCH del Fulltext???
  #4 (permalink)  
Antiguo 06/01/2011, 21:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Filtrar busqueda FULLTEXT MySQL

Cita:
Iniciado por lovecom45 Ver Mensaje
hola hermano, oye no entiéndo, me puedes decir cómo hacerlo ???

O sea modifico el WHERE MATCH del Fulltext???
mira, en realidad tu problema esta fuera de este foro... pues en si, se trata de la consulta de SQL la que debes modificar, y no tiene que ver mucho con código PHP que digamos...

sin embargo creo que deberías pensar un poco lo que haces, porque por lo que dudas parece ser que no entiendes mucho de la consulta que tienes...

dicha consulta compara varias columnas buscando el valor que coincide con tus datos, sin embargo hace dichas comparaciones a varias columnas, y en realidad no estas comparando la columna que de verdad necesitas...

no se que tanto sepas de SQL, pero debería ser algo sencillo...
Cita:
... AND columna_delegacion = 'valor_del_select' ...
¡usa el sentido común!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/01/2011, 23:09
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Filtrar busqueda FULLTEXT MySQL

Gracias jejejejejej tenias razón con el AND me funcionó es que los operadores en las consultas fulltext no sabía que funcionaban igual XD pero ya quedó de esta forma por si a alguien despistado como yo lo necesita

Código PHP:
SELECT FROM empresas WHERE MATCH (empresagirodelegacionAGAINST ('$campo' ) AND delegacion='$delegacion'  ORDER BY paquete DESC 

Etiquetas: filtrar, fulltext, mysql, busquedas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:49.