Pb mise en place systeme de top 5 des posteurs avec systeme de points
the_snake
Messages postés20Date d'inscriptiondimanche 21 septembre 2003StatutMembreDernière intervention31 octobre 2005
-
14 févr. 2004 à 23:01
the_snake
Messages postés20Date d'inscriptiondimanche 21 septembre 2003StatutMembreDernière intervention31 octobre 2005
-
15 févr. 2004 à 12:40
Bonjour donc voila le pb :
J'ai trois tables qui correpondent soit a des fiches postees sur mon site soit à des articles
pour chaque ligne il y a un nom de poteur
Donc je voudrais faire un systeme de top 5 des posteurs un peu comme sur codes sources mais la je me suis un peu embrouillé et je vois plus trop la facon de procèder pour arriver ou resultat genre
tel nom : tant de posts
enfin un classement general
j'avais commence avec unne table qui correpond a des fiches :
Ca m'affiche en fait le nombre de posts par posteurs mais que pour les fiches 1
apres je voulais faire pareil pour les fiches 2 et ensuite pour la table des articles
Mais je sais pas si c'est la bonne solution car je voi plus comment faire pour faire le cumul et afficher le classement final et encore moins pour transrmer les nb de post en point
pour faire pour une fiche 1 point et pour un artice 2 points
Enfin voila je suis un peu perdu ! pour pas dire carrement !
Merci d'avance pour votre aide !
SNAKE
the_snake
Messages postés20Date d'inscriptiondimanche 21 septembre 2003StatutMembreDernière intervention31 octobre 2005 15 févr. 2004 à 09:59
Bonjour
En fait c'est 3 tables mysql
la premiere
nom : liste_tbl
Nom_commun,Nom_scientifique,Famille,Photos,Description,Genre,Espece,Origine,Taille,Comportement,Sociabilite,Regime,Reproduction,Zone_occupee,Temperature,PH,Durete,Aeration,Hydro_dynamique,username,Generalites,Habitat,Remarques
la 2eme :
nom : listeplantes_tbl
Nom_commun,Nom_scientifique,Famille,Photos,Hauteur,Origine,Eclairage,Eau,Reproduction,Emplacement,Generalites,username
La 3 eme (Pas encore cree) du genre
nom : articles_tbl
Titre,Contenu,username
Pour chaque table des qu'il y a un post cela cree une ligne ds la table exemple :
ARNOLD poste un article
dans articles_tbl
cela cree une nouvelle ligne
Le titre bidon de l'article / Le corrps de l'article machintruc .../
ARNOLD
La table de membres est celle d'un forum ipb
Mais en fait je ne veu pas m'occuper de tous les memebres du sites mais seuleument de ceux qui on postes.
Leur pseudo est inscrit dans username de chaque table.
Moi j'etais parti au debut pour :
Ouvrir la table 1
compter le nombre de lignes par peudo ce qui correspon d au nombre de posts par username pour cette table
ensuite faire pareil pour les deux autres et faire apres le total des 3 mais la c'est plus complique que cela n'avais l'air !
Je rame carrement ! :-p
the_snake
Messages postés20Date d'inscriptiondimanche 21 septembre 2003StatutMembreDernière intervention31 octobre 2005 15 févr. 2004 à 10:15
excuse moi nos messages se sont croises
Oui en fait il n'y a pas beaucoup de posteurs par rapport au membres donc ca me semblait mois lourd de faire ca en recuperant seulement le nom de ceux qui on postes
comme dans mon premier essai de reqette en fait
perig
Messages postés358Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention 5 septembre 2006 15 févr. 2004 à 11:17
je sais pas si ça marche mais essai avec :
$req = mysql_query("SELECT username, COUNT(*) FROM liste_tbl GROUP BY username ");
while( $sortie = mysql_fetch_array($req))
{
$tab[$sortie[username]]=$sortie[1];
}
$req = mysql_query("SELECT username, COUNT(*) FROM listeplantes_tbl GROUP BY username ");
while( $sortie = mysql_fetch_array($req))
{
$tab[$sortie[username]]+=$sortie[1];
}
$req = mysql_query("SELECT username, COUNT(*) FROM articles_tbl GROUP BY username ");
while( $sortie = mysql_fetch_array($req))
{
$tab[$sortie[username]]+=$sortie[1];
}
arsort($tab);//trie le tableau tout en conservant les couples index/valeurs.
foreach($tab as $username=>$point)
{
print ' Username: ';
print $username.'
';
print 'Nombre:';
print $point;
print '
';
print '-----------------------------------------------------------------
';
}
ps: Je sais vraiment pas si ca va marcher!!
Y'a ptétre un prob car quand je fais $tab[$sortie[username]]+ =$sortie[1]; je supose que la valeur est initialisée a 0 (c'est normalement le cas en php)
et je connais pas dutout le COUNT(*) mais je l'ai réutilisé en suposant que ca te donne le nb de lignes.
---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
perig
Messages postés358Date d'inscriptionvendredi 1 novembre 2002StatutMembreDernière intervention 5 septembre 2006 15 févr. 2004 à 11:39
De rien!!!! ;)
Mais j'ai pas changé beaucoup de choses sur ton script,
J’ai juste mis les points dans un tableau avec pour index de chaque ligne le nom de l'utilisateur!!!
Et j'ai réutilisé ta fonction sur les autres tables en ajoutant les nouveaux points aux points existant.
Si l'utilisateur n avait pas encore de points alors on le rajoute dans le tableau.
Pour mettre 2 points par article tu remplace
$tab[$sortie[username]]+=$sortie[1];
Par $tab[$sortie[username]]+=$sortie[1]*2;
Dans la dernière boucle while.
---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
the_snake
Messages postés20Date d'inscriptiondimanche 21 septembre 2003StatutMembreDernière intervention31 octobre 2005 15 févr. 2004 à 11:51
Merci
Pour mon script j'avais deja galere pour trouver ca je comprennait rien au count et a la recuperation du tableau c'est pour ca que je ne voyais pas comment continuer.
the_snake
Messages postés20Date d'inscriptiondimanche 21 septembre 2003StatutMembreDernière intervention31 octobre 2005 15 févr. 2004 à 12:26
je crois que j'ai un petit bug ????
giorgio : 43
: 10
giorgio : 2
Wilduni : 1
V. COURTS : 1
exopoismer : 1
Aqua-Passion : 1
jyll.2 : 1
pour celui ou il y a pas de nom c'est des fiches ou il y a pas de pseudo ( avant que je mette en place le portail je rentrais des fiches manuellement )
Parcontre avant toujours a cause de l'entree manuelle il y avait Giorgio et giorgio , j'ai fait un update des tables pour changer Giorgio en giorgio et la j'ai ce rsultat : 2 memebre giorgio je comprend pas trop ???
Voyez vous de ou cela peut venir ?
SNAKE
the_snake
Messages postés20Date d'inscriptiondimanche 21 septembre 2003StatutMembreDernière intervention31 octobre 2005 15 févr. 2004 à 12:40
Ok j'ai trouve le pb pour les 2 giorgio
en fait il y avait 2 entrees avec un espace avant giorgio donc avec le update ils etaient pas pris en compte j'ai fait un update de touts les giorgio en giorgi et j'ai trouve les deux fantomes ! 8-)
SNAKE