Foros del Web » Programando para Internet » PHP »

buscador

Estas en el tema de buscador en el foro de PHP en Foros del Web. Hola amigos estoy desarrollando un buscador pero el problema esta que no me vota ninguna resultado en la consulta pruebo con LIKE si me vota ...
  #1 (permalink)  
Antiguo 23/06/2006, 10:00
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 20 años, 7 meses
Puntos: 0
buscador

Hola amigos estoy desarrollando un buscador pero el problema esta que no me vota ninguna resultado en la consulta pruebo con LIKE si me vota pero con MATCH y AGAINST no me esta funcionando he aqui mi codigo


<?
include ("funciones.php");
conectar();
if ($buscar==""){
echo "Ingresa al menos mas de 3 caracteres";
}else{
$Ssql="SELECT * FROM articulos WHERE MATCH(titulo,contenido) AGAINST ('$buscar')";
$Result=mysql_query($Ssql) or die (mysql_error());
$totalfilas=mysql_num_rows($Result);
if ($totalfilas==0){
echo "No encontrado";
}else{
while ($FILA=mysql_fetch_array($Result)){
echo $FILA['titulo']."<br>";
echo $FILA['contenido'];
}
}
}
?>
  #2 (permalink)  
Antiguo 23/06/2006, 10:10
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Segun lo que he leido, haciendo un

Código PHP:
ALTER TABLE articulos ADD FULLTEXT(titulocontenido); 
te funcionará. Si ya tienes el FULLTEXT puesto, no se que podra pasar en el script.

Un saludo, hebo.
  #3 (permalink)  
Antiguo 23/06/2006, 10:39
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 20 años, 7 meses
Puntos: 0
ya tengo el fulltext pero no me muestra nada?
  #4 (permalink)  
Antiguo 23/06/2006, 10:49
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Pues dejemos las respuestas a los Masters en PHP, porque bajo mi punto de vista, todo está bien, controla la versión del MySql que sea la ultima :) Si es la ultima, yo mismo probaré el codigo. Si puede ser dame todo el codigo y el sql que tenga que poner y lo probare por si es un error de script.
  #5 (permalink)  
Antiguo 23/06/2006, 11:14
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 20 años, 7 meses
Puntos: 0
CREATE TABLE articulos(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(200), contenido TEXT,
FULLTEXT indice_tc(titulo,contenido) );

Este es la tabla y el codigo php es todo lo que puse en el foro.
Gracias de antemano
  #6 (permalink)  
Antiguo 23/06/2006, 12:47
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
chico, hazlo con like porque con fulltext pa mi que lo vas a tener crudo... llevo 3 horas intentandolo y na. Hay alguna razon en especial para hacerlo con fulltext?
  #7 (permalink)  
Antiguo 23/06/2006, 13:07
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Yo no puedo, llevo mucho y no puedo, hazlo sin fulltext, con un simple WHERE titulo = '$buscar' or contenido = '$buscar' y te olvidas de los problemas. Si no sabes como me lo dices pero supongo que si sabras :) yo lo probe asi y me va de perlas :)
  #8 (permalink)  
Antiguo 23/06/2006, 13:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Si lees la documentacion de MySQL http://dev.mysql.com/doc/refman/5.0/...t-boolean.html

si ingresas una palabra que existe en todos los resultados, no te regresa nada, o sea consulta vacia.
  #9 (permalink)  
Antiguo 23/06/2006, 13:38
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Aunque suene redundante, como dice hebo y como dice GatorV, en ese orden, fijate la versión del Mysql ( ejecuta: select version() ), y luego leete el link de GatorV...ahí debe estar tu solución.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #10 (permalink)  
Antiguo 23/06/2006, 13:43
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 20 años, 7 meses
Puntos: 0
Las búsquedas realizadas con MATCH ...AGAINST en ocasiones fallan cuando el término a buscar contiene una sola palabra. Por el contrario son unas búsquedas rapidísimas que producen mejores resultados que otros métodos mas rudimentarios como el LIKE cuando se trata de varias palabras o frases.

Ahora si queremos un buscador que acepte cualquier cantidad de caracteres ya se una palabra que tenga 3 caracteres hay que hacer una condicion que cuando se busque una sola palabra utilizamos LIKE y cuando se busca mas una palabra MATCH -- AGAINTS

Eso pude averiguarlo en el manual de MYSQL

Gracias a todos por sus comentarios
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 18:44.