Maison > base de données > tutoriel mysql > Code PHP pour implémenter le nuage de tags

Code PHP pour implémenter le nuage de tags

怪我咯
Libérer: 2017-07-11 16:31:04
original
1281 Les gens l'ont consulté

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=&#39;color:BLUE ; font-size:".$Size." &#39; onMouseOver=this.style.color=&#39;#900000&#39; onMouseOut=this.style.color=&#39;BLUE&#39; href=&#39;".$ablink."tag?tag=".$EachTag."&#39; target=&#39;_self&#39; > ".$EachTag."(".$EachCount.")"." "; 
$i++; 
} 
} 
function GetTag(){ 
$QuerySet = mysql_query("select * from article"); 
while($Row = mysql_fetch_array($QuerySet)){ 
$Tag = $Row[&#39;tag&#39;]; 
$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 " 
"; 
?>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal