Hola a todos. He creado un glosario de unos términos tecnicos que salen en las descripciones de unas especies.
El código es este:
Código PHP:
<?
$palabrasdesc=explode(" ", $descripcion);
sort($palabrasdesc);
$comprobarglosarioraiz = sprintf("SELECT raiz FROM glosario");
$comprobacion = mysql_query($comprobarglosarioraiz, $Astur) or die(mysql_error());
$posicion=0;
while ($recorrerglo=mysql_fetch_assoc($comprobacion)) {
$blancaraiz=$recorrerglo['raiz'];
for ($a=0;$a<count ($palabrasdesc);$a++){
if (strlen($palabrasdesc[$a]) > 4) {
if (stristr($palabrasdesc[$a],$blancaraiz)){
$glosario[$posicion]=$blancaraiz;
$posicion=$posicion+1;
}}
}
}
$glosariofinal=array_unique($glosario);
sort($glosariofinal);
reset ($glosariofinal);
for ($b=0;$b<count ($glosariofinal);$b++){
$raizglosario=$glosariofinal[$b];
$glosarioficha = sprintf("SELECT * FROM glosario WHERE raiz = '".$raizglosario."'");
$glosariofichaconsulta = mysql_query($glosarioficha, $Astur) or die(mysql_error());
while ($glosariolistadoficha=mysql_fetch_assoc($glosariofichaconsulta)) {
echo "<strong>".$glosariolistadoficha['termino'].":</strong> ".$glosariolistadoficha['definicion']."<br/>";
}
}
?>
creo un array con la descripción, las palabras, y luego miro si contienen la raíz del término que figura en el glosario, por ejemplo caducifol para (caducifolia, caducifolio, caducifolias,...)
estas palabras que tienen la raiz las guardo en otro array que luego limpio los duplicados y ordeno, y luego hago una consulta a la base de datos pàra extraer la definicion de dicho término
El problema, como podeis ver en
http://www.asturnatura.com/Consultas...mbucus%20nigra, en la parte de abajo donde pone glosario, es que normalmente descoloca las palabras primeras y ultimas al estar ordenadas alfabeticamente.
¿Alguna idea de porque pasa esto?
Gracias de antemano