Système de classement des mots clés

Contenu du snippet

Faire un système de classement des mots clés
Voici en premier lieu notre cahier des charges:
- enregistrez seulement les nouveaux mot clés dans une table
- Compter leur nombre de recherche respective
- afficher le résultats sous forme de TOP10

Pour cela il nous faut donc une table qui peu contenir :
id int(11) auto_increment
keyword varchar(150) Unique
count int(6) par défaut 0

Le taux de probabiliter d'avoir énormément de recherche pour le mème mot clés étant faible, count (le nombre de vue) est un int(6) ce qui laisse une bonne marge.
Voici donc notre table:
[quote]
CREATE TABLE keyword (
id int(11) NOT NULL auto_increment,
keyword varchar(150) NOT NULL default '',
count int(6) default '0',
PRIMARY KEY (id,keyword),
UNIQUE KEY keyword (keyword)
) TYPE=MyISAM;
/quote

Lors ce qu'une recherche est faite, voilà le principe de notre script:
On chercher dans la table (SELECT) le mot clé. Si il est présent on affiche simplement le mot clé et le nombre de recherche, puis on y rajoute plus 1.
Par contre si le mot n'existe pas on l'ajoute

Source / Exemple :


$select = "SELECT * FROM keyword WHERE keyword = '$mot' ";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

     while($row = mysql_fetch_array($result)) {
          // on compte désormais une recherche de plus
     $scount = $row['count']+1;
     echo'Déjà '.$scount.' recherches pour "<b>'.$mot.'</b>"  ';

         // On récupère l'id du keyword dans une variable

$sql = "UPDATE keyword SET count = count +1 where id=$row1['id'] ";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

 } // si aucune recherche déjà faite
    else
  {
     //On ajoute le mot dans la table avec déjà une première recherche
   $sql = "INSERT INTO keyword VALUES('','$mot','1')";
   mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
   echo'C\'est la première recherche pour "'.$mot.'" ';
 }

Conclusion :


Notre compteur de keyword marche donc trés bien.
Pour faire un TOP10 des mots clés il suffit simplement de faire un SELECT order by count asc limit 0,10
Je vous laisse désormais cette partie ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.