forum en PHP : problème de suivi des messages [résolu]

forum en PHP : problème de suivi des messages [résolu] - PHP - Programmation

Marsh Posté le 13-03-2003 à 13:58:01    

Salut à tous,
 
Je suis en train de modifier complètement mon forum et je me pose pas mal de questions.
Déja, c'est un forum sans inscription (pour le moment tout du moins) et le premier truc qui m'embète, c'est pour le suivi des messages. J'ai juste un pb avec le stockage de la valeur de la dernière réponse vue. J'ai essayé avec un cookie, mais je peux stoquer que 20 paramètres, donc, c moyen pour le forum :-/ Je me suis dis que j'allais stoquer dans un tableau pour chaque numero de question le nb de réponses vues, mais ca marche pas [:zoutte]  
Comment vous avez fait vous pour le suivi des messages ?  
 
J'aurais surement d'autres questions au fur et a mesure de l'avancement de mon forum, mais la je suis déja bien coincé
Merci d'avance pour l'aide que vous pourrez m'apporter :jap:


Message édité par BenJ9002 le 16-03-2003 à 14:22:15
Reply

Marsh Posté le 13-03-2003 à 13:58:01   

Reply

Marsh Posté le 13-03-2003 à 14:22:26    

Ben sans inscription, ce n'est envisageable que le temps de la session non ?
 
Avec inscriptions, il suffit d'une table de liaison entre les messages et les utilisateurs.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 13-03-2003 à 14:26:11    

:ouch: c'est a dire ?  
 
On peut pas stoquer un tableau dans un cookie ? pasque ca m'aurais bien arrangé...  

Reply

Marsh Posté le 13-03-2003 à 14:51:53    

Y aurais pas qqn qui aurait fait un forum sans inscription qui pourrais m'aider [:zoutte] siouplait ? :(

Reply

Marsh Posté le 13-03-2003 à 15:15:22    

heu avec ou sans inscription , il y atjs des tables, donc jvois pas le blem?
 
tu stock le nbre de reponses et de vue dans la table  :)

Reply

Marsh Posté le 13-03-2003 à 15:18:54    

AGA a écrit :

heu avec ou sans inscription , il y atjs des tables, donc jvois pas le blem?
 
tu stock le nbre de reponses et de vue dans la table  :)  


Oui, ca ca marche nikel. Mon problème viens du sivi de la discussion. Quand un utilisateur clique sur mon lien, je veux qu'il soit dirigé directement à la dernière réponse qu'il a vu. Mais comment je fait pour garder cette valeur ?

Reply

Marsh Posté le 13-03-2003 à 15:23:18    

Si ton visiteur ferme son navigateur, comment tu fait pour le reconnaire la prochaine fois si il n'y a pas d'inscription ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 13-03-2003 à 15:35:20    

avec un cookie dans lequel je stocque son nom, sa couleur de fond et ou je stoquais pour chaque question le nb de réponses qu'il avait vu. Mais le pb, c'est que comme il peut y avoir que 20 variables dans le cookie, ben à la 20e question lue, ben pouf, on perd le nom :/
Donc, je cherche un autre moyen de faire ...
D'ou ma tentative de stoquer un tableau qui contiendrait pour chaque index de question, le nombre de réponses lues. Mais ca non plus ca marche pas [:zoutte]


Message édité par BenJ9002 le 13-03-2003 à 15:36:33
Reply

Marsh Posté le 13-03-2003 à 15:56:07    

Et si je fait avec une inscription (faudra que j'y passe bientot de toutes facons) comment ca marche pour le suivi alors ? Vous avez fait comment vous ?

Reply

Marsh Posté le 13-03-2003 à 16:55:24    

benj9002 a écrit :

Et si je fait avec une inscription (faudra que j'y passe bientot de toutes facons) comment ca marche pour le suivi alors ? Vous avez fait comment vous ?


 :bounce:

Reply

Marsh Posté le 13-03-2003 à 16:55:24   

Reply

Marsh Posté le 13-03-2003 à 17:40:14    

Tu peux stocker un id de session permanent dans son cookie et stocker ce même numéro dans une table dédiée au suivi de la discussion. Chaque fois qu'il consulte un sujet tu enregistres son n° de session + id du sujet + id du dernier message. Mais bon, avant de te faire chier à faire un truc de ce type (qui restera de toute manière bancal) mets d'abord en place un système d'enregistrement, c'est quand même autrement plus urgent :)

Reply

Marsh Posté le 13-03-2003 à 18:11:03    

Core 666 a écrit :

Tu peux stocker un id de session permanent dans son cookie et stocker ce même numéro dans une table dédiée au suivi de la discussion. Chaque fois qu'il consulte un sujet tu enregistres son n° de session + id du sujet + id du dernier message. Mais bon, avant de te faire chier à faire un truc de ce type (qui restera de toute manière bancal) mets d'abord en place un système d'enregistrement, c'est quand même autrement plus urgent :)


 
Je suis en train justement de faire le système d'enregistrement. Mais avec ton système, le suivi n'est pas conservé alors d'une session à une autre :??:

Reply

Marsh Posté le 13-03-2003 à 18:29:21    

Reply

Marsh Posté le 13-03-2003 à 18:32:15    


 
Ah toi aussi tu veux te faire un forum :)

Reply

Marsh Posté le 13-03-2003 à 18:33:51    

benj9002 a écrit :


 
Ah toi aussi tu veux te faire un forum :)


je veux juste le finir plutot  :whistle:  
c la partie qui me reste la gestion des vues/participés a la maniere des drapos :d


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 13-03-2003 à 19:51:16    

[:ssfblanka]

Reply

Marsh Posté le 13-03-2003 à 20:59:24    

[:valentinorossi]

Reply

Marsh Posté le 13-03-2003 à 21:02:52    

benj9002 a écrit :


Je suis en train justement de faire le système d'enregistrement. Mais avec ton système, le suivi n'est pas conservé alors d'une session à une autre :??:


Si, comme je le disais dans mon premier message il te faut stocker un id de session permanent dans le cookie de tes visiteurs.

Reply

Marsh Posté le 13-03-2003 à 21:16:21    

Core 666 a écrit :


Si, comme je le disais dans mon premier message il te faut stocker un id de session permanent dans le cookie de tes visiteurs.


 
Ca craint pas un peu de donner un sid permanent à l'utilisateur ?
 
Mais sinon pour dans la base, si je mets un champs 'suivi' qui contient pour chaque ligne '$num_question'-'$nb_reponses_vues' et qu'a chaque fois que je charge la page liste des sujets, je fait un appel à la base, c'est lourd quand meme :/
De meme, je dois à chaque lecture d'un sujet, faire un update de ma base avec le nouveau nombre de réponses lue pour la question  
:ouch:  
 
Y a pas mieux comme système ?

Reply

Marsh Posté le 13-03-2003 à 21:21:24    

benj9002 a écrit :


 
Ca craint pas un peu de donner un sid permanent à l'utilisateur ?


Je dis ca uniquement dans le cadre d'un forum dépourvu d'un système d'authentification. C'est clair qu'à partir du moment où tu gères des inscrits, et non plus de visiteurs, il faut procéder autrement.
 

Citation :

Mais sinon pour dans la base, si je mets un champs 'suivi' qui contient pour chaque ligne '$num_question'-'$nb_reponses_vues' et qu'a chaque fois que je charge la page liste des sujets, je fait un appel à la base, c'est lourd quand meme :/
De meme, je dois à chaque lecture d'un sujet, faire un update de ma base avec le nouveau nombre de réponses lue pour la question  
:ouch:  
 
Y a pas mieux comme système ?


Pourquoi le nombre de réponses lues ? Faut stocker l'id du dernier message au moment de la dernière consultation, c'est beaucoup mieux. Pour l'update, c'est instantanné, no soucis. Pour la liste des sujets, après ca dépend comment tu concois ton système. J'utilise une table de 480 000 enregistrements qui sert à stocker la position de chaque vue, la jointure est très rapide, j'arrive même pas à 2% de différence entre la sélection de x sujets et la sélection de x sujets + x vues :)


Message édité par Core 666 le 13-03-2003 à 21:21:47
Reply

Marsh Posté le 13-03-2003 à 21:41:30    

Core 666 a écrit :


Je dis ca uniquement dans le cadre d'un forum dépourvu d'un système d'authentification. C'est clair qu'à partir du moment où tu gères des inscrits, et non plus de visiteurs, il faut procéder autrement.
 
Pourquoi le nombre de réponses lues ?


Pasque c la méthose que j'ai essayée pour quand je me suis servi de mon cookie (mais ca marchait pas)
 

Core 666 a écrit :


Faut stocker l'id du dernier message au moment de la dernière consultation, c'est beaucoup mieux.


Je suppose, c'est comme ca que je vais faire alors
 

Core 666 a écrit :


Pour l'update, c'est instantanné, no soucis.  


ca fait quand meme une requete de plus :/
 

Core 666 a écrit :


Pour la liste des sujets, après ca dépend comment tu concois ton système. J'utilise une table de 480 000 enregistrements qui sert à stocker la position de chaque vue, la jointure est très rapide, j'arrive même pas à 2% de différence entre la sélection de x sujets et la sélection de x sujets + x vues :)


ma table pour la liste des sujets, je veux pas y toucher, à la limite, je peux ajouter des champs, mais c'est tout. Mais pour ton stockage des vues t'as donc une table dédiée ? Elle est comment alors cette table ? Et tu stoques quoi dedans ?

Reply

Marsh Posté le 13-03-2003 à 22:52:15    

UN conseil :
 
va sur www.xmbforum, télécharge le partagium, transpose les messages de ton forum existant vers le nouveau, et voilà, t'a un super forum complet comme celui de hardware.fr avec membres avatars etc ...
 
Et puis comme ça tu pourras m'aider sur le topic que g posé :"problème forum xmb"  :D

Reply

Marsh Posté le 13-03-2003 à 23:04:31    

tetram78fr a écrit :

UN conseil :
 
va sur www.xmbforum, télécharge le partagium, transpose les messages de ton forum existant vers le nouveau, et voilà, t'a un super forum complet comme celui de hardware.fr avec membres avatars etc ...
 
Et puis comme ça tu pourras m'aider sur le topic que g posé :"problème forum xmb"  :D  


 
Euh ouais mais non :D
 
Je préfère coder mon forum moi meme, meme s'il est moins bien que les tous prets, j'ai comme ca la satisfaction de mon truc à moi :) Et puis les tous faits, j'aime pas et en plus ils s'intègrent mal à mon site qui est déja en place lui [:spamafote]
 
Bon courage pour ton problème en tous cas

Reply

Marsh Posté le 13-03-2003 à 23:50:52    

:bounce:

Reply

Marsh Posté le 14-03-2003 à 01:04:17    

:hello:

Reply

Marsh Posté le 14-03-2003 à 10:44:52    

encore un petit up une dernière fois.
 
Juste pour un petit exemple de comment vous remplissez votre base pour le suivi des messages :jap:

Reply

Marsh Posté le 14-03-2003 à 15:54:53    

Core 666 a écrit :


Pour la liste des sujets, après ca dépend comment tu concois ton système. J'utilise une table de 480 000 enregistrements qui sert à stocker la position de chaque vue, la jointure est très rapide, j'arrive même pas à 2% de différence entre la sélection de x sujets et la sélection de x sujets + x vues :)


 
Core 666, tu pourrais m'indiquer comment t'as fait ta table ? pasque la je commence à déprimer. j'ai mon forum qui part en couille [:zoutte]  
Pour le reste je me débrouillerais, mais je suis emmerdé par le format de ma table.
 
Merci beaucoup d'avance.
Benjamin

Reply

Marsh Posté le 16-03-2003 à 13:27:24    

benj9002 a écrit :


ca fait quand meme une requete de plus :/


Certes, mais tu pourrais en faire 10 comme ca sur une même page que ton temps de génération n'en serait pas affecté (compte p'être 2 ms au pire avec une petite machine) :D
 
 

Citation :

ma table pour la liste des sujets, je veux pas y toucher, à la limite, je peux ajouter des champs, mais c'est tout. Mais pour ton stockage des vues t'as donc une table dédiée ? Elle est comment alors cette table ? Et tu stoques quoi dedans ?


Il n'est pas question de modifier la table dans laquelle tu stockes les sujets, ca ferait un truc carrement dégueulasse, mais de créer une table dédiée. Celle que j'utilise contient 7 champs mais comme mon modèle de données n'est pas public je te donne que les 3 principaux, qui sont suffisants :
 
- Id du membre
- Id du sujet
- Id du dernier message du sujet
 
Il suffit juste de faire une jointure sur cette table lors de la sélection de la liste des sujets pour avoir toutes les infos nécessaires à la création des drapeaux. Pour chaque ligne, tu compare l'id du dernier message du sujet de ta table drapeaux avec l'id du dernier message actuel :
- S'il existe et qu'il est inférieur : il y a eu de nouvelles réponses
- S'il existe et qu'il est identique : pas de nouvelles réponses
- S'il n'existe pas : le sujet n'a pas été lu, tu n'affiches rien
 
Il faut évidement que tu stockes l'id de tes messages sur un champ auto_increment.

Reply

Marsh Posté le 16-03-2003 à 14:26:28    

Core 666 a écrit :


Certes, mais tu pourrais en faire 10 comme ca sur une même page que ton temps de génération n'en serait pas affecté (compte p'être 2 ms au pire avec une petite machine) :D


Pour l'update, en effet, j'ai pas l'inpression que ca greve vraiment les perfs du serveur
 

Core 666 a écrit :


Il n'est pas question de modifier la table dans laquelle tu stockes les sujets, ca ferait un truc carrement dégueulasse, mais de créer une table dédiée. Celle que j'utilise contient 7 champs mais comme mon modèle de données n'est pas public je te donne que les 3 principaux, qui sont suffisants :
 
- Id du membre
- Id du sujet
- Id du dernier message du sujet
 
Il suffit juste de faire une jointure sur cette table lors de la sélection de la liste des sujets pour avoir toutes les infos nécessaires à la création des drapeaux. Pour chaque ligne, tu compare l'id du dernier message du sujet de ta table drapeaux avec l'id du dernier message actuel :
- S'il existe et qu'il est inférieur : il y a eu de nouvelles réponses
- S'il existe et qu'il est identique : pas de nouvelles réponses
- S'il n'existe pas : le sujet n'a pas été lu, tu n'affiches rien
 
Il faut évidement que tu stockes l'id de tes messages sur un champ auto_increment.


 
Finalement, c'est bon, j'ai fait comme ca et ca marche trop bien. un chouia lent mais ca va :)
D'ailleurs on en discute la : http://forum.hardware.fr/forum2.ph [...] h=&subcat= si tu veux

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed