/*---------------------------------------------------------------*/
|
/*
|
Titre : Tag cloud basé sur les recherches
|
|
URL : https://phpsources.net/code_s.php?id=358
|
Auteur : nixi54
|
Date édition : 18 Mars 2008
|
*/
|
/*---------------------------------------------------------------*/
|
|
|
$txt='<p>Un tag cloud qui utilise MySQL</p><p>';
|
|
// connection sql
|
|
$db=mysql_connect('localhost','yourusername','yourpasswd') or die(mysql_error())
|
;
|
mysql_select_db('yourbase');
|
|
|
// Pour commencer, nous allons creer une table avec qulques requetes
|
|
mysql_query(
|
"CREATE TEMPORARY TABLE searchterms (term VARCHAR(150) NOT NULL PRIMARY" .
|
" KEY,nbsearches BIGINT UNSIGNED NOT NULL DEFAULT 1,datesearch DATE NOT NULL)",
|
$db) or die(mysql_error());
|
|
// insertion des enregistrements
|
mysql_query(
|
"INSERT INTO searchterms SET term='1st" .
|
" term',nbsearches=20,datesearch='2007-11-10'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='2nd" .
|
" term',nbsearches=40,datesearch='2007-11-11'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='3rd" .
|
" term',nbsearches=25,datesearch='2007-12-10'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='4th" .
|
" term',nbsearches=200,datesearch='2007-12-01'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='5th" .
|
" term',nbsearches=2,datesearch='2007-11-02'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='6th" .
|
" term',nbsearches=45,datesearch='2007-12-10'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='7th" .
|
" term',nbsearches=120,datesearch='2007-12-11'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='8th" .
|
" term',nbsearches=767,datesearch='2007-11-12'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='9th" .
|
" term',nbsearches=220,datesearch='2007-12-12'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='10th" .
|
" term',nbsearches=10,datesearch='2007-11-13'",$db);
|
mysql_query(
|
"INSERT INTO searchterms SET term='11th" .
|
" term',nbsearches=520,datesearch='2007-12-14'",$db);
|
|
// Creation d'une table temporaire qui contient les terms de recherche avec le
|
// nbre de click par terme
|
mysql_query(
|
"CREATE TEMPORARY TABLE tempsearch SELECT term,nbsearches FROM searchterms" .
|
" ORDER BY datesearch DESC LIMIT 100",$db) or die(mysql_error());
|
|
// creation d'une autre table temporaire avec le resultat et la limite que l'on
|
// souhaite (10 dans l'exemple)
|
mysql_query(
|
"CREATE TEMPORARY TABLE tempsearchsorted SELECT term FROM tempsearch ORDER BY" .
|
" nbsearches DESC LIMIT 10",$db) or die(mysql_error());
|
|
// prend le maximum de recherches par terme
|
$q=mysql_query(
|
"SELECT max(nbsearches) FROM searchterms,tempsearchsorted WHERE" .
|
" tempsearchsorted.term=searchterms.term",$db) or die(mysql_error());
|
$sum=mysql_result($q,0);
|
|
|
// Selection des enregistrements ordonné par nom
|
$q=mysql_query(
|
"SELECT searchterms.term,searchterms.nbsearches FROM" .
|
" searchterms,tempsearchsorted WHERE tempsearchsorted.term=searchterms.term" .
|
" ORDER BY searchterms.term ASC",$db) or die(mysql_error());
|
|
while($l=mysql_fetch_assoc($q)) {
|
$txt.= '<a href="/yourpage.php?item='.urlencode($l['term']).
|
'" style="font-size:'.($l['nbsearches']/$sum + 0.9).'em">'.$l['term'].'</a> ';
|
|
}
|
$txt.='</p>';
|
|
echo $txt;
|
|
mysql_close($db);
|
|
| ?> |