Foros del Web » Programando para Internet » PHP »

problema con buscador simple..... MATCH() AGAINST()

Estas en el tema de problema con buscador simple..... MATCH() AGAINST() en el foro de PHP en Foros del Web. _SSX.... sigo estando de acuerdo... con vos.... respecto de que "Lo Mejor" es relativo ya que depende de las necesidades del sistema... y es jstamente ...

  #31 (permalink)  
Antiguo 26/07/2007, 14:50
Avatar de marcus aurelio  
Fecha de Ingreso: julio-2007
Ubicación: Quilmes, Bs. As.
Mensajes: 7
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: problema con buscador simple..... MATCH() AGAINST()

_SSX.... sigo estando de acuerdo... con vos.... respecto de que "Lo Mejor" es relativo ya que depende de las necesidades del sistema... y es jstamente por eso...que por ahi la consulta con LIKE puede serle util a nuestro amigo RogerTM, por lo menos hasta que pueda domar el match against....
  #32 (permalink)  
Antiguo 26/07/2007, 20:22
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años
Puntos: 10
Re: problema con buscador simple..... MATCH() AGAINST()

Wow ... de una consulta de usuario ... ha salido un tema por demás interesante Marcus Aurelio me uno a _SSX y espero igual tu post ... ojalá nos puedas avisar cuando lo tengas ...

Por otro lado estoy de acuerdo ... de hecho en un principio se había planteado el asunto con MATCH() y AGAINST(), pero por la naturaleza de lo que está buscando (y obviamente la dimensión de datos) me parece que la solución con LIKE es buena ...

Pero definitivamente si se quiere hacer buen uso de DB ... es bueno conocer también MATCH() y AGAINST() ... así como opto mucho más por usar JOINS en lugar de abusar de sentencias WHERE simulando joins ...

Un saludo a todos
  #33 (permalink)  
Antiguo 30/07/2007, 09:25
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: problema con buscador simple..... MATCH() AGAINST()

hola otra vez, no estube por aca antes por que era feriado y claro, no trabajaba, jajajaa, pero he vuelto a mis andanzas en este foro Y SI, ya funciona todo bien, al final lo he (hemos) resuelto asi:
Código PHP:
<?php
if(isset($_GET['key_word'])){
    if (empty(
$_GET['key_word'])){
        echo 
"<h4>Debe introducir una palabra clave</h4>";
    }
    if(
$totalRows_busqueda_resultado == 0)
        {echo 
"su busqueda por PALABRA CLAVE arrojo <strong>$totalRows_busqueda_resultado</strong> resultados para <strong>$palabra</strong>";
    }
    else{
        echo 
"Su busqueda arrojo <strong>$totalRows_busqueda_resultado</strong> resultados para <strong>$palabra</strong> en <strong>" $reloj->stop(true3) ."</strong> segundos";
    }
}
if(isset(
$_GET['avanzada'])){
    echo 
"Su busqueda AVANZADA arrojo <strong>$totalRows_busqueda_resultado</strong> resultados en <strong>" $reloj->stop(true3) ."</strong> segundos";
}
if(
$totalRows_busqueda_resultado >= 1)
 {echo 
"" ;
?>
// aqui toda la armazon........................... //
<?php ?>
y bueno, en cuento a lo de MATCH() AGAINST(), he leido algo y creo que es lo mejor, por eso este post lo comense con ese asunto, pero para lo que quiero lograr aqui con el LIKE va bien, y bueno es mi primer buscador, jajajajaaa, yupiiiiiiiiiiiii..........................

y tambien me sumo a los demas, espero por tu post Marcus Aurelio, nos vemos por aca................

ta luego
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #34 (permalink)  
Antiguo 30/07/2007, 10:26
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: problema con buscador simple..... MATCH() AGAINST()

HAY DIOS en realidad tengo algo mal que trato de ver, en la parte del:
if($totalRows_busqueda_resultado >= 1)
{echo "" ;

por que si paso los form vacios me muestra todos los registros de la base de datos

mmmmmmmmmmmmm sigo aqui
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #35 (permalink)  
Antiguo 30/07/2007, 10:52
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años
Puntos: 10
Re: problema con buscador simple..... MATCH() AGAINST()

Pues acá hay 2 soluciones; 1 con javascript (más eficiente) y otra del lado del server ...

Posteo la del lado del server ...
Código PHP:
#duplica esta entrada para cada $_GET
$_GET'carpeta' ] = $_GET'carpeta' ] == '' '-------' $_GET'carpeta' ];

$query_busqueda_resultado 'SELECT *
FROM documentos
WHERE carpeta_ID LIKE "%' 
$_GET'carpeta' ] . '%"
AND funcionario_ID LIKE "%' 
$_GET'funcionarios' ] . '%"
AND fecha_entrada LIKE "%' 
$_GET'fecha_entrada' ] . '%"
AND fecha_documento LIKE "%' 
$_GET'fecha_doc' ] .'%"'
Lo que te está ocurriendo tiene sentido, ya que le estas diciendo a MySQL que te traiga las coincidencias de todos los campos ... osea te está generando cosas como WHERE carpeta_ID LIKE "%%" ... entonces obviamente pues todo coincide con eso ... ...

Con javascript lo que tendrías que hacer es antes del envío del formulario validar cuáles de tus campos de búsqueda van vacíos y para el que valla vacío cambiarle el valor a "-------" ...

NOTA: Estoy usando ------- asumiendo que en los registros no existe tal valor, obviamente hay formas mejores, del lado del server, x ejemplo reconstruyendo el query si vienen vacíos y metiendo un where que invalide los like . Solo muestro lo que tienes que hacer y una solución simple, la solución final es decisión tuya.

Mucha suerte y un saludo
  #36 (permalink)  
Antiguo 30/07/2007, 11:01
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: problema con buscador simple..... MATCH() AGAINST()

bueno si, creo que lo intentare hacer con javascript

gracias socio
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #37 (permalink)  
Antiguo 06/08/2007, 12:58
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: problema con buscador simple..... MATCH() AGAINST()

que hay muchachos, aqui estoy otra vezzzzzzzzzzZz

ahora el problema es el siguiente, tengo un tercer form (tramitado), este con tres campos, uno es un select con valores, tramitado == 1, no tramitado == 0, y otros dos de fecha, fecha_cumplimiento, fecha_real, y lo que hice fue agregar la siguiente consulta, lo cual supongo que deba ser asi, por lo que tengo antes..........:
Código PHP:
elseif(isset($_GET['tramitado']))
{
$colname_busqueda_resultado addslashes($_GET['tramitado']);
mysql_select_db($database_regent_cnx$regent_cnx);
$query_busqueda_resultado 'SELECT * FROM documentos WHERE tramitado LIKE "%'.$_GET'tramitado' ].'%" AND fecha_cumplimiento LIKE "%'.$_GET['fecha_cumplimiento'].'%" AND fecha_real LIKE "%'.$_GET['fecha_real'].'%"';
$busqueda_resultado mysql_query$query_busqueda_resultado$regent_cnx ) or die( mysql_error() );
$row_busqueda_resultado mysql_fetch_assoc$busqueda_resultado );
$totalRows_busqueda_resultado mysql_num_rows$busqueda_resultado );} 
y donce quiero mostrar los resultados lo tengo asi:
Código PHP:
<?php
if(isset($_GET['key_word'])){
    if(!empty(
$_GET['key_word'])){
        if(
$totalRows_busqueda_resultado == 0){
            echo 
"su busqueda por PALABRA CLAVE arrojo <strong>$totalRows_busqueda_resultado</strong> resultados para <strong>$palabra</strong>";
        }
    elseif(
$totalRows_busqueda_resultado >= 1){            
        echo 
"Su busqueda arrojo <strong>$totalRows_busqueda_resultado</strong> resultados para <strong>$palabra</strong> en <strong>" $reloj->stop(true3) ."</strong> segundos";
        }
    }
    elseif (empty(
$_GET['key_word'])){
        echo 
"<h4>Debe introducir una palabra clave</h4>";
    }
}
elseif(isset(
$_GET['avanzada'])){
    echo 
"Su busqueda AVANZADA arrojo <strong>$totalRows_busqueda_resultado</strong> resultados en <strong>" $reloj->stop(true3) ."</strong> segundos";
}

// aqui es el nuevo codigo ...............
elseif(isset($_GET['tramitado'])){
    echo 
"Su busqueda por TRAMITADOS arrojo <strong>$totalRows_busqueda_resultado</strong> resultados en <strong>" $reloj->stop(true3) ."</strong> segundos";
}
if(
$totalRows_busqueda_resultado >= 1){
do { 
?>
// aqui toda la armazon
<?php ?>
cuando envio este ultimo form, la consulta se genera bien, por ejemplo:
Cita:
SELECT * FROM documentos WHERE tramitado LIKE "%%" AND fecha_cumplimiento LIKE "%%" AND fecha_real LIKE "%%"
en caso de enviarla vacia, de otra manera imprime bien todo, el problema es que no muestra ningun resultado, por que?

graciassssssssssssssSs
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #38 (permalink)  
Antiguo 13/08/2007, 08:10
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años
Puntos: 10
Re: problema con buscador simple..... MATCH() AGAINST()

En qué casos no te muestra resultados? ... te refieres a que el resultado de la consulta no te muestra resultados? ... o a que la consulta te devuelve resultados, pero al tratar de mostrarlos en pantalla no se muestran?

Saludos
  #39 (permalink)  
Antiguo 13/08/2007, 08:58
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: problema con buscador simple..... MATCH() AGAINST()

Cita:
Iniciado por axz Ver Mensaje
En qué casos no te muestra resultados? ... te refieres a que el resultado de la consulta no te muestra resultados? ... o a que la consulta te devuelve resultados, pero al tratar de mostrarlos en pantalla no se muestran?

Saludos
gracias por todo azx, ya lo resolvi, era un problema de nombres mal puestos, que en lugar de tramitado, puse tramitados o algo asi, pero por suerte me di cuenta y lo arregle, y aprobecho para decirte que ya lo termine, valide los campos con javascript y ya todo funciona muy bien, gracias a ti por tu ayuda.

ahora lo que me queda es para la proxima tratar de hacer un buscador mejor usando MATCH() AGAINST(), como era realmente el objetivo que yo queria, pero este me sirve para lo que se quiere lograr, ya que es un buscador realmente simple

bueno, ya nos veremos por aca

saludos y gracias por todo
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #40 (permalink)  
Antiguo 14/08/2007, 12:32
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años
Puntos: 10
Re: problema con buscador simple..... MATCH() AGAINST()

Excelente rogertm ... qué bueno que lograste lo que te propusiste ... para eso estamos ... para ayudarnos entre todos ...

Mucha suerte por allá con tus nuevos proyectos ...
  #41 (permalink)  
Antiguo 15/08/2007, 10:31
 
Fecha de Ingreso: agosto-2007
Mensajes: 2
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: problema con buscador simple..... MATCH() AGAINST()

hola yo no voy a dar alguna respuesta al contrario lo que quiero es que me ayuden a realizar una busqueda de datos en una base de datos.
Lo que quiero es que al escribir el apellido paterno , el materno y el nombre y al darle click en un boton buscar me arroje el datoo los datos en una tabla y en esa tabla al darle click en un icono me envie a una un formulario con los datos a modificar.
espero que me puedan ayudar a hacerlo. pero lo quiero en php y firebird que es lo que utilizo.
gracias de antemano.
  #42 (permalink)  
Antiguo 15/08/2007, 11:22
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: problema con buscador simple..... MATCH() AGAINST()

Cita:
Iniciado por axz Ver Mensaje
Excelente rogertm ... qué bueno que lograste lo que te propusiste ... para eso estamos ... para ayudarnos entre todos ...

Mucha suerte por allá con tus nuevos proyectos ...
OH YEAH...!

Cita:
Iniciado por elmi Ver Mensaje
hola yo no voy a dar alguna respuesta al contrario lo que quiero es que me ayuden a realizar una busqueda de datos en una base de datos.
Lo que quiero es que al escribir el apellido paterno , el materno y el nombre y al darle click en un boton buscar me arroje el datoo los datos en una tabla y en esa tabla al darle click en un icono me envie a una un formulario con los datos a modificar.
espero que me puedan ayudar a hacerlo. pero lo quiero en php y firebird que es lo que utilizo.
gracias de antemano.
hola elmi, en primer lugar bienvenido al foro, no te arrepentiras de ser parte de la comunidad, te lo aseguro..........
entrando ya en materia, creo que debes aclarar un poquito mas, a ver por ejemplo, los apllidos materno, paterno y el nombre, los guardas en campos diferentes o todo en un solo campo? me parece que para lo que quieres sera mejor cada cosa en un campo aparte, ya para lo de la modificacion de los datos es otro asunto, tendrias que hacer un UPDATE a tus registros.

tambien te pido que leas detalladamente todo este post, que como vez yo resolvi el problema que tenia, asi podras usar el codigo que hemos puesto aqui y cuando te vengan los errores, pues postea, es asi como funciona esto, por que si no nos das algo de codigo, no creo que se pueda trabajar en el aire, de todos modos, creo que lo que te hace falta es algo sencillo como el buscador que yo hice gracias a este post y todos los que me ayudaron.

nada socio, un saludo y aqui estamos
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
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 12:24.