Faire un 'explode' d'un champ en base de données
Angecorse
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Inventaire :
-> mysql
-> phpmyadmin
->innodb
-> framework php: CI 3
BDD : blog
table: post
Dans la base de données j'ai plusieurs tags dans le champs 'tags' :
par exemple :"video 3d, comique"
Ils sont donc séparés par un espace, une virgule ou les deux.
J'aimerais qu'à l'affichage ceux-ci s'explosent pour que par la suite, si l'un deux est cliqué, la recherche s'effectue sur tous les articles comportant ce seul tag et affiche le résultat.
J'aimerais que ce soit une fonction et qu'elle boucle sur autant de tags qu'il y a dans le champ :
Inventaire :
-> mysql
-> phpmyadmin
->innodb
-> framework php: CI 3
BDD : blog
table: post
Dans la base de données j'ai plusieurs tags dans le champs 'tags' :
par exemple :"video 3d, comique"
Ils sont donc séparés par un espace, une virgule ou les deux.
J'aimerais qu'à l'affichage ceux-ci s'explosent pour que par la suite, si l'un deux est cliqué, la recherche s'effectue sur tous les articles comportant ce seul tag et affiche le résultat.
J'aimerais que ce soit une fonction et qu'elle boucle sur autant de tags qu'il y a dans le champ :
public static function tags(){
}
A voir également:
- Faire un 'explode' d'un champ en base de données
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Tnt base de données vide - Forum TNT / Satellite / Réception
2 réponses
Bonjour,
Une alternative à explode, c'est de t'amuser avec des expressions rationnelles : "(([^,\s]+)[,\s])*([^,\s]+)"
Xavier
Une alternative à explode, c'est de t'amuser avec des expressions rationnelles : "(([^,\s]+)[,\s])*([^,\s]+)"
Xavier
Bonjour,
Je ne comprend pas trop ta demande .. du moins ... ce qu'est exactement la question...
Tu bloques sur quoi ? L'affichage ? l'explode ? la boucle ? La recherche ?
Qu'as tu déjà commencé à faire ?
Sans parler du fait que nous ne connaissons pas la structure de ta table "post" ... le code de la vue dans laquelle tu veux afficher tes tags... le moyen de connexion à ta BDD ( PDO ? Mysqli ? mysql ? )
Bref .. merci de préciser !
NB: Tu parles du framework CI3 .. tu veux bien dire Code Igniter 3 ?
Je ne comprend pas trop ta demande .. du moins ... ce qu'est exactement la question...
Tu bloques sur quoi ? L'affichage ? l'explode ? la boucle ? La recherche ?
Qu'as tu déjà commencé à faire ?
Sans parler du fait que nous ne connaissons pas la structure de ta table "post" ... le code de la vue dans laquelle tu veux afficher tes tags... le moyen de connexion à ta BDD ( PDO ? Mysqli ? mysql ? )
Bref .. merci de préciser !
NB: Tu parles du framework CI3 .. tu veux bien dire Code Igniter 3 ?
Bonjour Jordane,
Pour CI3 : Oui c'est effectivement codeigniter 3 (j'ai précisé dèsfois qu'il y ait des helpers ou autres qui soient natifs pour ce type de fonction)
→ Le moyen de connexion : pas important, ce n'est pas le sujet ;)
→ La structure de la table : à mon sens, aucun intérêt de la connaître
J'aimerais une fonction qui explose les données contenues dans le champ "tags" de la table "blog" : Le plus important est cité ici.
Je redonne l'exemple :
Dans "tags" si j'ai "vidéo, 3d, comique" ou "vidéo 3d comique" (avec ou sans virgule), il faut que la fonction sorte autant de blocs (bloc[0], bloc[1], bloc[2], bloc[x],...) qu'il y a de mots et retourne le résultat.
Pour information, l'explosion du champ servira par la suite :
→ à dissocier les tag (mots-clés) lors de l'affichage (mais ce n'est pas ma requête).
→ à calculer, dans ce champ "tags", quels sont les tags les plus utilisés et les afficher (là encore ce n'est pas ma requête)
Ne t'embête avec ce qui tourne autour de la fonction.
Pour CI3 : Oui c'est effectivement codeigniter 3 (j'ai précisé dèsfois qu'il y ait des helpers ou autres qui soient natifs pour ce type de fonction)
→ Le moyen de connexion : pas important, ce n'est pas le sujet ;)
→ La structure de la table : à mon sens, aucun intérêt de la connaître
J'aimerais une fonction qui explose les données contenues dans le champ "tags" de la table "blog" : Le plus important est cité ici.
Je redonne l'exemple :
Dans "tags" si j'ai "vidéo, 3d, comique" ou "vidéo 3d comique" (avec ou sans virgule), il faut que la fonction sorte autant de blocs (bloc[0], bloc[1], bloc[2], bloc[x],...) qu'il y a de mots et retourne le résultat.
Pour information, l'explosion du champ servira par la suite :
→ à dissocier les tag (mots-clés) lors de l'affichage (mais ce n'est pas ma requête).
→ à calculer, dans ce champ "tags", quels sont les tags les plus utilisés et les afficher (là encore ce n'est pas ma requête)
Ne t'embête avec ce qui tourne autour de la fonction.
Dans l'explode ce qui me manquait c'était comment gérer un espace et/ou une virgule ;)
2. j'aimerais l'afficher sur ma page avec
1. dès que ça touche la base de données, j'ai des erreurs (si je cré une variable à exploser tout se passe bien)
2. A ce point là j'ai aussi des erreurs, car chaque <li> doit afficher un de field
J'ai donc tout supprimé :(