begin process at 2012 05 30 15:43:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

Autre

 > 

Lister des tags


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lister des tags

samedi 31 janvier 2009 à 10:51:04 | Lister des tags

thedeejay

Bonjour!
Je suis en train de creer un script de news, qui se présente comme ca:
Table articles: id|titre|contenu[...]|tags
La colonne tags contient une variable avec les tags de l'article sous cette forme: Test, Défaut, Vive, PHPCS, Allez, Les, bleus etc.

Ce que je souhaite faire c'est récuperer tous les tags de tous les articles, puis les mettres sous cette forme sans doublons:

["Tags 1", "Tags 2", (...)]

Si vous n'avez pas compris n'hésitez pas!
samedi 31 janvier 2009 à 11:16:49 | Re : Lister des tags

coucou747

Administrateur CodeS-SourceS
salut

ta base de donnee est mal foutue : tu as plusieurs tags dans un seul champ.

tu aurais du faire une table tags (id, texte, id_article)
samedi 31 janvier 2009 à 11:28:47 | Re : Lister des tags

thedeejay

oui mais la si il y a 200 articles, à 10 tags par articles ca commence à faire beaucoup...
samedi 31 janvier 2009 à 14:03:19 | Re : Lister des tags

kohntark

Membre Club
Salut,

2000 = beaucoup ??

Ce qui risque de faire beaucoup c'est le traitement PHP pour mettre en forme.

Ce que tu peux faire :
$q = mysql_query("SELECT tags FROM articles");
$arr_tags = array();

while ($r = mysql_fetch_array($q, MYSQL_NUM)) {
  $tags = explode(',', $r[0]);
  $arr_tags = array_merge($arr_tags, $tags);
}

array_unique($arr_tags);

// traitement avec un foreach pour produire la chaine rechercher
foreach($arr_tags as $k=>$v) {
  echo $v.', ';
}

(+ virer la dernière virgule)

J'ai écrit ça un peu à l'arrache et je n'ai pas testé, mais ça devrait fonctionner.

Cordialement,

Kohntark -

samedi 31 janvier 2009 à 14:20:39 | Re : Lister des tags

coucou747

Administrateur CodeS-SourceS
en mysql, j'ai deja vu des tables avec 4 000 000 de lignes.

mysql> SELECT COUNT(*) FROM clients;
+----------+
| COUNT(*) |
+----------+
|     1698 |
+----------+


mysql> SELECT COUNT(*) FROM encaissements;
+----------+
| COUNT(*) |
+----------+
|     9811 |
+----------+

mysql> SELECT COUNT(*) FROM passage_prestation;
+----------+
| COUNT(*) |
+----------+
|    11705 |
+----------+

2000 lignes, c'est rien...

j'arrive a faire des extractions avec 4 ou 5 jointures sur un p2 400 mhz en quelques secondes, et ca, sans avoir mis AUCUN index autre que les primary keys...
samedi 31 janvier 2009 à 14:44:33 | Re : Lister des tags

thedeejay

en fait je doit simplifier le code au max, mais si j'utilise cette méthode c'est principalement pour avoir le moins de requetes possibles, par exemple lorsqu'on fais voir les articles par tag, avec votre méthode on fais 2 requete par tag par article...
donc je redemande en plus simple, comment comparer deux tableaux, ajouter au deuxième les valeurs du premier qui ne sont pas dans le deuxième?
samedi 31 janvier 2009 à 15:00:37 | Re : Lister des tags

kohntark

Membre Club
donc je redemande en plus simple, comment comparer deux tableaux, ajouter au deuxième les valeurs du premier qui ne sont pas dans le deuxième?
C'est quoi qui ne va pas avec la méthode que je te propose ?


on fais 2 requete par tag par article...
Je ne comprends pas bien là, tu peux préciser ?


Kohntark-
samedi 31 janvier 2009 à 15:39:58 | Re : Lister des tags

coucou747

Administrateur CodeS-SourceS
thedeejay, tu peux le faire en une seule requete avec ma methode, suffit de faire une requete imbriquee ou une jointure.

et comme tu le vois, ta methode (en plus de ne pas etre semantique) pose BEAUCOUP PLUS de problemes.

donc est-elle reellement plus simple ?


Cette discussion est classée dans : lister, forme, articles, tags


Répondre à ce message

Sujets en rapport avec ce message

prob. pour des date ex. [ par LeRoux ] Je souhaite afficher les 5 articles les + récents d'une base de données se nommant articles, comment faire? Convertir une Date au format Timestamp [ par Touf ] Salut !J'ai un petit pb : j'accède à une Date stockée dans une bdd mysql sous la forme (timestamp) "YmdHis" : 20020608105031J'aimerais l'afficher sous comment afficher sous forme de tableau [ par Xime ] bonjourvoila j'aimerais savoir comment afficher mes données que je recupere de ma base de données sous forme de tableau (la taille sera en fonction du Mise en Forme HTML [ par CouB ] Je m'explique :J'ai un script qui doit me permettre de mettre a jour du text et des images sur une page php.Les données sont saisies via un formulaire conversion de date [ par Joez ] voila je récupère la date de mysql sous la forme 2002-01-02 10:43:32 et je voudrais afficher cette date sous la forme Lundi 02 janvier 2002 à 10h4 serveur d'informations et d'actualités [ par hackoo ] Salut, je cherche un script complet pour la création d'un seveur d'informations et d'actualités dans lequel le lecteur peut devenir acteur ,avec la po lister un dossier [ par g0belin ] Bonjour,je voudrai savoir commentz peut on liste les fichiers d'un dossier !!!merci d'avance pour votre reponse Lister les fichiers, sur plusieurs pages [ par jeremytheboss ] Bonjour,Connaissez-vous le code à mettre pour lister le contenu d'un dossier sur plusieurs pages (dixfichiers par pages)Merci de votre réponse, Jérémy Expression régulière pour retrouver tous les tags php [ par ninatomb ] Je recherche une expression régulière qui me retrouve tous les tags php dans une page html, sans modifier l'htmlEt une qui fonctionne !!!!!Celle ci ne du MultiPlayer dans l'aire [ par Nestor ] SalutJe voudrais me faire sous forme de tableau un listing d'adresse ip, du ping, date, heure.....pour mon site mais je sauré jamais faire cela en php


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,855 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales