TUTORIEL PHP 
Un gestionnaire de liens à base de mots-clefs en PHP
Un script complet reprenant l'idée popularisée par le site del.icio.us pour mieux gérer ses favoris. (26/02/2005)
  1. Présentation et mise en place
2. Fonctionnement (1) | 3. Fonctionnement (2)

Présentation
La gestion personnelle des données a pris un nouveau virage grâce à la popularisation de systèmes basés non plus sur une catégorisation fixe, mais effectuée par l'utilisateur lui-même. Face aux contraintes des systèmes de guide, les internautes font plutôt confiance aux résultats proposés par les moteurs de recherche.

  En savoir plus
 Les tags, cette idée simple que redécouvre le Web sur JDN Solutions

L'étape suivante ? La possibilité pour l'internaute de classer les données au moyen de mots-clefs qu'il a lui-même choisis, et d'agréger ceux de centaines d'autres internautes.

Les services en ligne de ce type font florès : GMail pour trier ses messages, Flickr pour classer ses photos, del.icio.us et le français BlogMarks pour cataloguer ses liens… Englobant tout cela, le moteur de recherche dédié aux blogs Technorati permet de lancer des recherches sur tous les services publics, sur un ou plusieurs mots-clefs. Si l'on ajoute à cela la mise à disposition, pour les développeurs, d'APIs complètes permettant de tirer des résultats en XML des bases de données de ces sites, et même de s'abonner via RSS aux nouveautés par service pour un mot-clef, le Web actuel devient réellement dynamique et proche de l'internaute.

Avant de se pencher sur quelques API proposées, nous allons étudier le système en créant un clone simple (mono-utilisateur) du service del.icio.us. Par la suite, nous relierons notre système à l'API del.icio.us pour faire une sauvegarde du contenu.

Mise en place
Notre système tourne autour d'une seule table (eut-il été multi-utilisateur, il aurait fallu prévoir une table pour les utilisateurs, une table pour les liens, et une table pour créer la liaison entre utilisateur et lien). Celle-ci se construit comme suit dans MySQL

CREATE TABLE `delicieux` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `url` VARCHAR( 255 ) NOT NULL ,
  `titre` VARCHAR( 255 ) NOT NULL ,
  `description` TEXT,
  `mots` VARCHAR( 255 ) NOT NULL ,
  `datation` DATETIME NOT NULL ,
  PRIMARY KEY ( `id` ) ,
  INDEX ( `mots` )
  );

Comme pour le système original, tous les champs sont obligatoires, sauf le descriptif. On remarquera que les mots-clefs sont simplement enregistrés sous forme de chaîne dans la table, pour chaque URL. C'est PHP qui se chargera ensuite de les dissocier et de les afficher correctement. Les mots-clefs doivent être entrés séparés par un espace (pas de virgule).

La connexion MySQL est triviale :

$conn = mysql_connect("localhost", "root", "")
  or die("Impossible de se connecter");
$db = mysql_select_db("test", $conn)
  or die(mysql_error());
$table = "delicieux";

  Forum

Réagissez dans les forums de JDN Développeurs

Trois possibilités sont à prendre en compte pour le déroulement du programme : l'affichage de tous les liens, l'affichage des liens attachés à un mot-clef (un seul pour le moment), et l'enregistrement d'un nouveau lien. Nous ne prévoyons pas pour le moment de pouvoir modifier la fiche d'une URL, mais cela est assez trivial à partir du moment où l'on sait créer une fiche.

Voici d'ailleurs notre formulaire de création de fiche :

URL
Titre
Commentaire
Mots-clefs
 

que nous avons placé dans une fonction afficherFormulaire() :

function afficherFormulaire() {
  ?>
  // code HTML du formulaire ci-dessus
  <?php
  }

  1. Présentation et mise en place
2. Fonctionnement (1) | 3. Fonctionnement (2)
 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages