Comment créer un nuage de tags php/mysql

123 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

je souhaiterais creer un systeme de nuage pour la boutique peel style tags avec ceci :

id est l’identifiant unique du tag

tag est le tag à proprement parler

nbre est le nbre de fois demandé ou selectionné

avec ceci :

<?php

define("MIN_SIZE", 9);

define("MAX_SIZE", 36);

$result = mysql_query("SELECT tag, count(*) as number FROM tags GROUP BY tag ORDER BY tag") or die(mysql_error());

$min = MAX_INT;

$max = -MAX_INT;

while ($tag = mysql_fetch_assoc($result)) {

if ($tag['number'] < $min) $min = $tag['number'];

if ($tag['number'] > $max) $max = $tag['number'];

$tags[] = $tag;

}

$min_size = MIN_SIZE;

$max_size = MAX_SIZE;

foreach ($tags as $tag) {

$tag['size'] = intval($min_size + (($tag['number'] - $min) * (($max_size - $min_size) / ($max - $min))));

$tags_extended[] = $tag;

}

?>

Quand pensez vous ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

mais comment alimente tu la table tags? sur les recherches?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Effectivement il faudrait inscrire dans la base tous les mots qui sont recherché, pour ensuite faire un count!!!

Ca risque d'etres lourd non?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Heu c'est quoi un systeme de nuages ? :)

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Sinon une idée c'est de gégérer le TAg Cloud a partir des Meta présent dans les fiches produit : http://www.3dvf.fr/tag.php

c'est pas encore au point, il faudrais que j'arrive a extraire chaque mot du champs meta_tag.

J'ai tester avec le poids ça fonctionne bien.

A+

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Ha OK :)

Merci pour le lien, je verrais la semaine prochaines, vacances "obligées" :)

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci pour le lien, je verrais la semaine prochaines, vacances "obligées" :)

VAcances obligées?????

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

je fait des test la, 1ere etape remplir une table sql avec les mots rechercher sur le site, donc je modifi le fichier /achat/recherche.php

ADD :

// Insertion Tag de recherche
$sql = "INSERT INTO `tag_cloud` (`id`, `tag_name`) VALUES ('', '$motclef')";
mysql_query($sql) or die(mysql_error());
// Fin Insertion[/codebox]

A suivre

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

VAcances obligées?????

Oui une mission qui s'arrete un peu prématurément, des congés de 2006 en rabe --> vacances imposées par mon employeur.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Moi c'est le contraire, un projet qui se finit, une fatigue qui se fait sentir, due aux exams en cours...

du coup faut pousser encore un peu jusqu'à mi-juillet.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ADD :

// Insertion Tag de recherche
$sql = "INSERT INTO `tag_cloud` (`id`, `tag_name`) VALUES ('', '$motclef')";
mysql_query($sql) or die(mysql_error());
// Fin Insertion[/codebox]

Pas bon, tu vas remplir ta table de données existantes, faut verifier si ca existe en table et mettre à jour le compteur.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Non, apparement apres il y a un count, donc pas de comptage si déja présent dans la BDD.

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

alors tu vas engorgé ta bdd;.. surtout que 3dvf a un gros gros site, si à chaque recherche il nourrit la table d'une ligne de plus, t'imagine le temps de réponse au bout de six mois?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pas bon, tu vas remplir ta table de données existantes, faut verifier si ca existe en table et mettre à jour le compteur.

Heu oui la je rempli ma table, et ensuite lors de l'affichage je compte, c'est un premier jet qui fonctionne, et ça demande correction/amelioration, je suis preneur de vos idées.

A+

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Lors de la recherche, tu teste la recherche , si tu as une ligne correspondante, tu met à jour le nbre recherche en faisant le resultat du nbre de recherche +1 sinon, tu ajoute une ligne.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

1) Créé un champs comptage dans ta table où tu stocks tes mots recherchés

2) Il faudrait que tu regardes en premier si la recherche a déja été effectuée.

Si oui, tu mets à jour le compteur en ajoutant 1 au comptage

Si non tu créés un enregistrement avec un comptage de 1

3) A l'affichage tu sélectionnes la zone comptage plutot que de faire un count

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

1) Créé un champs comptage dans ta table où tu stocks tes mots recherchés

2) Il faudrait que tu regardes en premier si la recherche a déja été effectuée.

Si oui, tu mets à jour le compteur en ajoutant 1 au comptage

Si non tu créés un enregistrement avec un comptage de 1

3) A l'affichage tu sélectionnes la zone comptage plutot que de faire un count

Willy

ouaip, ce que je dis, avec des chiffres devant :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

On a écrit en mm temps :)

Si on dis la mm chose c'est que ca doit pas etre trop con :)

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ca doit etre ca :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Question existent il une fonction increment directement dans une commande mysql?

du style

$sql = "UPDATE `tag_cloud` SET `nbsearch` = 'INC nbsearch' WHERE `id` = $id LIMIT 1";

Merci :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Je ne sais pas mais ça ça devrait fonctionner:

$sql = "UPDATE tag_cloud SET nbsearch = nbsearch+1 WHERE id =" .$id;
OU ça si l'id est un char:
$sql = "UPDATE tag_cloud SET nbsearch = nbsearch+1 WHERE id ='" .$id ."'";

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

je l'ai déjà vu comme ca en effet.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

En suivant vos conseil, voila le résultat :

http://www.3dvf.fr/

Il ne me reste plus qu'a optimisé les accés BDD.

A+

PS : du coup cela est super instructif sur le comportement des visiteurs.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

superbe, mon idée de ce matin tu l'as finalisé ( c'est ce que je souhaitais faire)

éventuellement si tu pouvez mettre les codes :)

merci a toi

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping