Ver Mensaje Individual
  #7 (permalink)  
Antiguo 13/08/2010, 11:04
MARTIN_LAW
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Buscar una cadena de texto en base de datos

Cita:
Iniciado por jurena Ver Mensaje
95 son sólo dos caracteres y FULL TEXT tiene una serie de limitaciones, como que sólo busca por defecto palabras (ojo, palabras de más de tres caracteres, para evitar encontrar términos muy repetidos como artículos, pronombres, etc.). Tampoco encontrará aquello que aparezca en 50% o más de los registros. Es decir, que si Windows aparece en un 51% de los registros en que buscas, simplemente no lo encontrará. Echa un vistazo tranquilo a FULLTEXT en el manual de MySQL. Permite hacer muchas cosas, pero ya sabes que sólo se usa en tablas MyIsam.

Gracias por la respuesta Jurena, la verdad que no se lo que son tablas MyIsam....

Yo lo quiero usar en una aplicacion php conectada a una base de datos mysql....


Y algun consejo o solucion para lo que deseo alternativo a fulltext????

Me gustaria conseguir lo que dije,creo que si me explique bien, por si acaso aqui lo digo de nuevo:


Imaginamos una base de datos de peliculas:

4 bodas y un funeral
La boda de mi mejor amigo
mejor imposible
american pie 3
american pie 4


Pues quiero que si busco por "pie american", me muestre como resultado las dos peliculas:
american pie 3
american pie 4

Es decir, que me busque ambas palabras.

La solucion que se me ocurre es separar lo introducido en la busqueda en varias palabras eliminando espacios, y buscar ambas palabras por separado, y mostrar el resultado en el caso que coincidan las dos en un mismo articulo, pero no se si habra un modo mas aconsejable para hacerlo.



EDITADO:

Ya esta solucionado, al final lo hice gracias a un codigo que encontre, aqui lo dejo por si puede ayudar a alguien mas:


Se separan las palabras recibidas a buscar:
Código:
<?
$consulta = $_GET["$q"];
$consulta = split(' ',$consulta);
?>
Y creamos la consulta:
Código:
<?
$sql = "SELECT * FROM paginas WHERE ";
for($a = 0; $a < count($consulta); $a++){
   if($consulta[$a] != ''){
      if($a != 0)$sql .= 'AND ';
      $sql .= "texto LIKE '%".$consulta[$a]."%'";
   }
}
?>


Fuente: http://www.programacionweb.net/articulos/articulo/?num=50

Última edición por MARTIN_LAW; 13/08/2010 a las 11:51