Bueno, pues tienes razón biblio... pero a veces estos retos me gustan (y me sirven)
Aqui te paso el código, que combina expresiones regulares tanto en MySQL como en PHP...
Adaptarlo a tu sistema va a ser fácil, pero vas a necesitar entender que es lo que hace... así que a echarle ganas!!!
Código PHP:
<?
//Primero creas una funcion que te deje todo SIN acentos
//y todo en minusculas
$palabra="Manoloweb";
$varConAcento = array ("/á/", "/é/", "/í/", "/ó/", "/ú/", "/Á/", "/É/", "/Í/", "/Ó/", "/Ú/");
$varSinAcento = array ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
function cambia ($texto) {
$texto = preg_replace($GLOBALS["varConAcento"], $GLOBALS["varSinAcento"], $texto);
$texto = strtolower($texto);
return $texto;
}
//Ahora le aplicas la funcion a la palabra
$palabraN = cambia($palabra);
//AQUI VIENE LO INTERESANTE...
$reg="";
for ($i=0;$i<strlen($palabraN);$i++){
if ($palabraN{$i}=="a" || $palabraN{$i}=="á") {
$reg.="[a|á]";
} elseif ($palabraN{$i}=="e" || $palabraN{$i}=="é") {
$reg.="[e|é]";
} elseif ($palabraN{$i}=="i" || $palabraN{$i}=="í") {
$reg.="[i|í]";
} elseif ($palabraN{$i}=="o" || $palabraN{$i}=="ó") {
$reg.="[o|ó]";
} elseif ($palabraN{$i}=="u" || $palabraN{$i}=="ú") {
$reg.="[u|ú]";
} else {
$reg.=$palabraN{$i};
}
}
//Ahora construimos el query para MySQL
$qry="SELECT * FROM tabla WHERE campotexto REGEXP '$reg'";
///aqui te conectas///
$qr=mysql_query($qry);
while ($rs=mysql_fetch_array($qr)) {
preg_match_all('/('.$reg.')([\s\S]*)/', $rs["campotexto"], $cadenaN, PREG_SET_ORDER);
$coincidencias[]=substr($cadenaN[0][0],0,300);
}
//Ahora si, el array $coincidencias tiene un registro para cada
//Cadena encontrada, 300 caracteres a partir de la primera coincidencia...
?>