Comment créer un nuage de tags php/mysql

123 posts in this topic

Posted · Report post

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 ?

Share this post


: post
Share on other sites

Posted · Report post

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

Share this post


: post
Share on other sites

Posted · Report post

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

Ca risque d'etres lourd non?

Share this post


: post
Share on other sites

Posted · Report post

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

Willy

Share this post


: post
Share on other sites

Posted · Report post

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+

Share this post


: post
Share on other sites

Posted · Report post

Ha OK :)

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

Willy

Share this post


: post
Share on other sites

Posted · Report post

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

VAcances obligées?????

Share this post


: post
Share on other sites

Posted · Report post

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

Share this post


: post
Share on other sites

Posted · Report post

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

Share this post


: post
Share on other sites

Posted · Report post

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.

Share this post


: post
Share on other sites

Posted · Report post

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.

Share this post


: post
Share on other sites

Posted · Report post

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

Willy

Share this post


: post
Share on other sites

Posted · Report post

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?

Share this post


: post
Share on other sites

Posted · Report post

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+

Share this post


: post
Share on other sites

Posted · Report post

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.

Share this post


: post
Share on other sites

Posted · Report post

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

Share this post


: post
Share on other sites

Posted · Report post

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 :)

Share this post


: post
Share on other sites

Posted · Report post

On a écrit en mm temps :)

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

Willy

Share this post


: post
Share on other sites

Posted · Report post

ca doit etre ca :)

Share this post


: post
Share on other sites

Posted · Report post

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 :)

Share this post


: post
Share on other sites

Posted · Report post

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

Share this post


: post
Share on other sites

Posted · Report post

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

Share this post


: post
Share on other sites

Posted · Report post

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.

Share this post


: post
Share on other sites

Posted · Report post

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

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping