Teniendo una base de datos mysql es muy fácil.
Puedes hacerlo de dos maneras. Búsqueda literal:
Código PHP:
Ver original$sql="SELECT * FROM tabla WHERE campo LIKE '%".$cadenadebusqueda."%'";
El % significa TODO (similar al *). Es decir, que campo debe tener CUALQUIERCOSA(cadena de búsqueda)CUALQUIERCOSA. Tiene el inconveniente de que la búsqueda es literal.
Ejemplo:
Código PHP:
Ver original$cadenabusqueda="texto a buscar";
$descripcion="buscar texto";
//Resultado: 0 coincidencias.
También puedes hacer una búsqueda avanzada. Imagínate que la tabla productos tiene PRODUCTO y DESCRIPCIÓN. Tedrás que hacer una clave FULLTEXT para ambos y ya estás lista para el siguiente paso, el sql:
Código PHP:
Ver original$sql="SELECT * , MATCH(producto, descripcion) AGAINST ('$cadenaBusqueda') as Score FROM tabla_productos WHERE MATCH(producto, descripcion) AGAINST ('$cadenaBusqueda') ORDER BY Score DESC";
Esto buscará palabra por palabra en producto y descripción, y además generará un campo llamado Score que será la puntuación de búsqueda. Al ordenarlo por Score, los mejores resultados saldrán de primeros (descendente), ya que tendrán más puntuación. REalmente no sé cómo se obtiene ese score, es un algoritmo de mysql supongo.
Ejemplo:
Código PHP:
Ver original$cadenabusqueda="texto a buscar";
$descripcion="buscar texto";
//Resultado: 1 coincidencias.
Ejemplo2:
Código PHP:
Ver original$cadenabusqueda="texto a buscar";
$producto="buscar"
$descripcion="texto";
//Resultado: 1 coincidencias.
Para añadir fulltext a los campos (ejecútalo una vez y lo tendrás preparado):
Código PHP:
Ver original$sql="ALTER TABLE productos ADD FULLTEXT(producto, descripcion)";
Saludos y suerte