[PHP] Séparer tags depuis une boite de texte

Matthieu -  
 Matthieu -
Bonjour,

Je recherche de l'aide en PHP concernant l'extraction de tags postés depuis une boite de texte.
Je cherche en fait à envoyer plusieurs tags séparés à chaque fois par une virgule + espace (", ") et insérer chaque tag dans une table MySQL à 3 colonnes : ID | tag | objet.
(avec ID = identifiant du tag auto-incrémenté
tag = le texte du tag, tout simplement
objet = identifiant de l'objet auquel le tag est rattaché)

Sauf que je galère pour :
1) séparer chaque tag
2) une fois les tags séparés, les envoyer dans la table (je suppose que ce sera par une boucle)

----------

Notice :

J'ai une boite de texte toute bête :

<input name="tags" type="text" />

Et donc pour récupérer la variable tags dans mon script de Parser, j'utiliserai la variable $_POST['tags']...

Exemple, si l'utilisateur envoie les tags sous cette forme :
Chien, animal, labrador, caniche
(donc 4 tags)

On aura : $_POST['tags'] = "Chien, animal, labrador, caniche"

Dans la table "tags", on aurait donc au final (pour l'article 10) :

1- Chien - 10
2- animal - 10
3- labrador - 10
4- caniche - 10

----------

Quelle fonction utiliser pour séparer chaque tag ?
Puis ensuite, comment récupérer les tags séparés pour les insérer directement dans une table, mais séparés ?

Merci d'avance,
Matthieu.
Configuration: Windows XP
Firefox 2.0.0.3

1 réponse

  1. Matthieu
     
    Chers amis,

    J'ai finalement trouvé seul une réponse à mon problème en utilisant la fonction explode(). Ouf !

    <?
    
    // Etape 1 : La fonction si $_POST['index_tags']
    
    if( isset($_POST['index_tags']) )
    {
    $tags = explode(", ", $_POST['index_tags']);
    }
    
    // Etape 2 : La boucle !
    
    if( isset($tags) )
    {
      for ($t = 0; $t < count($tags); $t++)
      {
      echo $tags[$t];
    // Que l'on remplacera évidemment par la requete MySQL de son choix
    
      }
    }  
    ?>


    Ayé ! Voici pour ceux qui voudront faire un système de tags fait-maison sur leur site ! ;)
    3