descripcion
El Museo del Prado es una de las pinacotecas más importantes del mundo, y cuenta con una inigualable colección de pintura española, italiana y flamenca. Está situado en Madrid, (España). Junto con otros dos centros, el Museo Thyssen-Bornemisza y el Museo
Como pueden ver las tildes y las ñ estan en codigo html.
el codigo de la busqueda es la siguiente:
Código :
//$busqueda es la palabra q voy a buscar dentro de descripcion $sql = "SELECT cod_link FROM link where MATCH(descripcion) AGAINST('$busqueda' IN BOOLEAN MODE)"; $resultado=$miconexion->consulta($sql); $num_total_registros =$miconexion->numRows($resultado); if($num_total_registros!=0 && $pagina>0){ $total_paginas = ceil($num_total_registros / $tamano_pagina); //esta consulta es para inprimir una imagen un titulo de la descripcion y limitar la paginacion $ssql = "SELECT * FROM link,link_categoria,sitio where MATCH(link.descripcion) AGAINST('$busqueda' IN BOOLEAN MODE) and link_categoria.cod_link=link.cod_link and link.cod_sitio=sitio.cod_sitio limit " . $inicio . "," . $tamano_pagina; $resultado=$miconexion->consulta($ssql); while($row = $miconexion->getFilasArreglo($resultado)) { //poner en negrita la palabra de la busqueda $trozos = explode(" ", $row["descripcion"]); $espacios=1; for($n=0;$n<(strlen($row["descripcion"]));$n++) { if(($row["descripcion"][$n])==' '){$espacios=$espacios+1;} } ?> <table border="0" cellpadding="0" cellspacing="4" width="100%"> <tbody><tr> <td class="fondoazul_claro centrartexto" width="165" align="center"> <a href="<?php echo ($row["nombre_link"]);?>" target="_blank"> <img src="<?php echo ($row["imagen_sitio"]);?>" alt="<?php echo ($row[ "nombre_sitio"]);?>" title="<?php echo ($row["nom_video"]);?>" border="0" width="150"/> </a></td> <td class="fondogris"> <h3><?php echo ($row["nombre_sitio"]);?></h3> <p><?php //aqui es donde doy las condiciones para imprimir la $busqueda en un color rojo dentro de la descripcion for($j=0;$j<$espacios;$j++) { if((!strcasecmp ($trozos[$j],$busqueda.".")) || (!strcasecmp($trozos[$j],$busqueda)) || (!strcasecmp($trozos[$j],$busqueda.",")) || (!strcasecmp($trozos[$j],"<".$busqueda.">")) || (!strcasecmp($trozos[$j],"'".$busqueda."'")) || (!strcasecmp($trozos[$j],$busqueda.";")) || (!strcasecmp($trozos[$j],$busqueda.":")) || (!strcasecmp($trozos[$j],$busqueda."-")) || (!strcasecmp($trozos[$j],'"'.$busqueda.'"')) || (!strcasecmp($trozos[$j],'('.$busqueda.')')) || (!strcasecmp($trozos[$j],'('.$busqueda)) || (!strcasecmp($trozos[$j],$busqueda.')'))) { echo "<b class='textorojo'> ".$trozos[$j]."</b>"; $j++; } echo " ".$trozos[$j];//strcasecmp Comparación de cadenas insensible a mayúsculas y minúsculas } ?></p>
el problema es el siguiente:
la busqueda de palabras sin signos de acento la realiza muy bien y las pone en color rojo.
cuando la palabra de busqueda lleva signo de acento o esta con ñ no me realiza la busqueda para este problema utiliza el siguiente codigo antes de hacer la busqueda en la base de datos.
Código :
$busqueda=htmlentities($busqueda);//htmlentities Convierte todos los caracteres a su entidad HTML aplicable
listo con esto me busca las palabras con signo de acento y ñ, pero el problema es que busca todas las palabras con ñ y no la palabra especifica
ejemplo:
$busqueda="ocaña";
el resultado es todas las palabras con ñ= españa, ocaña, caña...
y no me pone en color rojo la palabra
de antemano les agradesco y perdon por esta larga explicacion

