Bonjour a tous, tout est dans le titre mais personne n'a jamais repondu aux autres topics du meme noms, donc je le REposte !!
En esperant une reponse !!
Merci bien !!
Oui j'ai lu mas j'ai pas compris le message de winzou
EDITION :
Voila a quoi doit ressember la BDD ormalement masi je ne comprends rien a l'organsation ni a quoi ces chiffres servent ainsi que les user1 etc...
topicgroup
topic
lastmessage
user1
user2
user3
...
2
2
238
0
0
238
235
7
4
252
37
252
231
252
Apres, le message de winzou :
Citation : Winzou
J'avais lu excellent rapport qualité/prix
Alors uhm, pour les topics lu / non-lu d'abord. C'est très très moche comme tu fais Surtout que j'imagine que tu fais pas un index sur chaque colonne userX, donc ca doit pas être très rapide (pour ne pas dire lent) quand la table commence à se grossir.
En fait t'as la bonne technique (enfin celle que je préfère, et celle qu'utilise le sdz), mais tu l'appliques pas bien.
Au lieu de rajouter une colonne userX à chaque user et de faire 1 ligne / topic, il faut avoir une seule colonne "user id" et faire 1 ligne / topic / membre. Donc si il y a 10 topics et 20 membres, il y a 10x20 = 200 lignes. 20 lignes pour le topic 1, 20 lignes pour le topic 2, etc... C'est beaucoup plus beau d'un point de vue conception de BDD, mais surtout infiniment plus rapide
Pour infos cette table fait dans les 450 000 lignes pour le sdz. Mais comme elle est petite (en largeur), ne contient que des nombres, et est bien indexée (index sur 2 colonnes, userid puis topicid (j'insiste sur le "puis")), elle est vraiment rapide.
En pratique, c'est plus chaud à appliqué. En fait ya plein de détails, du genre si un membre n'a pas lu un topic, il n'existe pas de ligne idtopic/iduser dans cette table. Si le topic 1 n'a été lu que par 5 des 20 membres, alors il n'y a que 5 lignes. Ca permet de limiter le nombre d'entrée dans la table (ce qui est toujours bon à prendre). Donc en fait tu insert la ligne idtopic/iduser à la première lecture du topic par le membre, pas avant.
Et de nouveau ici je ne comprends pas !!
Qu'est-ce que les "1 ligne / topic / membre"
Voila pour les details du message
Merci des reponses !!
C'est pas très dure moi aussi je fais un forum et j'ai eu ce problème en fait l'astuce est pas très compliqué mais fallait la trouver. Tu peux faire un truc de ce genre là mais avant toutes choses faut que tu rajoutes dans ta table un champ Lu ou nb fois lu comme tu veux.
$select_topic = mysql_query('SELECT * FROM ta_table_forum WHERE id='\' . $_GET['id'] . '\''); $topic = mysql_fetch_array($select_topic); $compteur = $topic['Lu'] + 1; mysql_query('UPDATE ta_table_forum SET Lu=\'' . $compteur . '\' WHERE id=\'' . $_GET('id'] . '\'');
Voila j'éspère avoir bien pu t'aider et n'hésite pas à modifier le code à ta guise (genre le nom des variables) et à le paramèter pour ton site.
EDIT: heu tu voulais un compteur de lecture pout chaque topic ou faire un sytème comme le site du zero avec les petits rond à gauche?
Les 2 !
Merci bien
Mais oui c'etait bien le "petit rond" que je voulais masi merci quand même !!
Si vous voulez plus d'infos sur mon probleme, lire le message que j'ai fait avant Ronflex
Je dirais plutot qu'il faut que tu utilise un cookie (ou une session) qui stocke le dernier passage du membre. Après, tu compare les timestamp du dernier post et de la derniere visite, et ainsi ils sont marqué nouveaux ou pas. Mais pour le lu / non lu, je peux rien dire
Ok merci bien je vais attendre un peu les reponses des autres
Web Developer
Topic lu/non lu
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Web Developer
Web Developer
Web Developer
Web Developer
Web Developer
Web Developer
Web Developer
Web Developer
Web Developer