Maison >base de données >tutoriel mysql >Code PHP pour implémenter le nuage de tags
Un nuage de tags est un ensemble de tags associés et leurs poids correspondants. Un nuage de balises typique comprend 30 à 150 balises. Le poids affecte la taille de la police ou d’autres effets visuels utilisés. Pendant ce temps, les histogrammes ou les diagrammes circulaires sont le plus souvent utilisés pour représenter environ 12 poids différents. Par conséquent, le nuage de tags peut représenter davantage de droits, même s’il est moins précis. De plus, les nuages de tags sont souvent interactifs : les tags sont généralement des hyperliens, permettant aux utilisateurs d'examiner de plus près leur contenu.
Le code d'implémentation suivant recherche les balises dans la base de données et les formate afin qu'elles affichent des connexions texte de différentes tailles en fonction du nombre d'occurrences
Dans la base de données, les articles sont stockés. un champ "Tag" dans la table, qui permet de stocker les tags. Les balises sont séparées par ",". Par exemple, « PHP, VB, essais ».
Le code d'implémentation suivant recherche les balises dans la base de données et les formate afin qu'elles affichent des liens texte de différentes tailles en fonction du nombre d'occurrences.
Je n’expliquerai pas les détails !
Le code d'implémentation du nuage de tags avec des concepts anciens, des méthodes stupides et une faible efficacité est le suivant :
Le code est le suivant :
//Connect the database //include('../include/config.php'); /** * CountTag() - Statistics labels appear the number,and the data to be stored in the two array * * GetTag() - Access the Tag's Labels from the database */ function CountTag($String){ $TagString = $String; //echo $TagString." "; $Tags = explode(",",$TagString); $n = 1; $i = 0; $Continue = TRUE; //echo $Tags[1]." "; //in case no-label's article while($Tags[$n] OR $Tags[++$n] OR $Tags[++$n] ){ $EachTag = $Tags[$n++]; //echo $EachTag." "; $Continue = TRUE; for($i=0;$Continue;$i++){ if( $EachTagStr[$i][0] ) { if( $EachTagStr[$i][0] == $EachTag ){ $EachTagStr[$i][1]++; $Continue = FALSE; } else { if( $EachTagStr[$i+1][0] ) $Continue = TRUE; else { $EachTagStr[$i+1][0] = $EachTag; $EachTagStr[$i+1][1] = 1; $Continue = FALSE; } } } else { //initialize the array $EachTagStr[][] $EachTagStr[$i][0] = $EachTag; $EachTagStr[$i][1] = 1; $Continue = FALSE; } } } return $EachTagStr; } function ShowTag($Row,$ablink){ $i = 0; while($Row[$i][0]){ $EachTag = $Row[$i][0]; $EachCount = $Row[$i][1]; $Size = SetSize($EachCount); echo " < a style='color:BLUE ; font-size:".$Size." ' onMouseOver=this.style.color='#900000' onMouseOut=this.style.color='BLUE' href='".$ablink."tag?tag=".$EachTag."' target='_self' > ".$EachTag."(".$EachCount.")"." "; $i++; } } function GetTag(){ $QuerySet = mysql_query("select * from article"); while($Row = mysql_fetch_array($QuerySet)){ $Tag = $Row['tag']; $TagString = $TagString.",".$Tag; } return $TagString; } function SetSize($Size){ $Size += 10; if($Size > 30) $Size = 30; return $Size; } //Go echo " "; echo "标签云"; $String = GetTag(); $Row = CountTag($String); ShowTag($Row,$ablink); echo " "; ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!