Comment réaliser un nuage de tags multicolores et multi tailles en utilisant php et mysql. Supposant que votre table exemple « articles » contient trois champs id, titre, tags et vous voulez afficher ces tags dans un endroit dans votre site, voici un exemple que j’ai réalisé.

  1. //On a besoin de deux tableaux pour le traitement des tags
  2. $chaine_tags=array();
  3. $tab_tags=array();
  4. //Faire une sélection des tags a partir de la base de donnée
  5. $result=mysql_query("SELECT * FROM articles");
  6. while ($tags=mysql_fetch_object($result)){
  7.    $chaine_tags[]=explode(",",$tags->tags);
  8. }
  9.  

  1. //Puis remplir le tableau $tab_tags par les tags de toutes les enregistrements renvoyé par la requette sql
  2. for ($i=0;$i<=count($chaine_tags)-1;$i++){
  3.      for ($j=0;$j<=count($chaine_tags[$i])-1;$j++){
  4.         if (!empty($chaine_tags[$i][$j])) $tab_tags[]=$chaine_tags[$i][$j];
  5.     }
  6. }
  7. $mots=array_unique($tab_tags); //Supprimer les doublons
  8. shuffle($mots); //Mélanger les tags
  9. //Tableau des couleur aléatoires de votre choix
  10. $tab_colors=array("#3087F8","#EC1E85","#14E414","#9EA0AB");
  11. //Affichage des tags
  12. for ($i=0;$i<=$max_tags-1;$i++){
  13. $fontsize = rand(10,22).‘px’; //fontsize aléatoire ici entre 10 et 22 px
  14. $color=rand(0,count($tab_colors)-1); //La couleur aléatoire
  15.  
  16. $nuage_tags .=‘<a style="font-size:’.$fontsize.‘;color:’.$tab_colors[$color].‘; " title="Rechercher le tag ‘.$mots[$i].‘" href="recherche.php?tag=’.urlencode($mots[$i]).‘">’.$mots[$i].‘</a> ‘;
  17. }
  18. <div class="tags">".$nuage_tags."</div>
  19. ";