par
alexbad » 21 févr. 2006, 01:30
Oui, j'admets qu'en relisant ça demeure vague.
J'ai deux tables : une pour stocker les sujets :
Code : Tout sélectionner
CREATE TABLE `forums_sujets` (
`id` mediumint(9) NOT NULL auto_increment,
`sujet` varchar(255) NOT NULL default '',
`par` varchar(255) NOT NULL default '',
`date` varchar(255) NOT NULL default '',
`message` longtext NOT NULL,
`forum` mediumint(9) NOT NULL default '0',
`nbre_vu` mediumint(9) NOT NULL default '0',
PRIMARY KEY (`id`)
);
Le champ "sujet" contient le
titre du post, le champ "par" contient l'auteur, le champ "date" contient un timestamp (bien qu'en VARCHAR 255), "message" contient le texte du post, "forum" contient le id du forum dans lequel le sujet se trouve, et "nbre_vu" le nombre de fois que le topic a été vu.
Cette table ne contient que les sujets. Par exemple, ici si on serait sur mes forums, on ne trouverait que dans cette table le premier post que j'ai fait au début. Le message que je suis en train de poster et celui de
Truc serait placés dans une table "forums_messages" :
Code : Tout sélectionner
CREATE TABLE `forums_messages` (
`id` mediumint(9) NOT NULL auto_increment,
`sujet` varchar(255) NOT NULL default '',
`forum` varchar(255) NOT NULL default '',
`message` longtext NOT NULL,
`par` varchar(255) NOT NULL default '',
`date` varchar(255) NOT NULL default '',
`titre` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
)
Le champ "sujet" contient le id du sujet (pas le titre du post, ça correspond au champ "id" dans la table forums_sujets). Ensuite, "forum" contient l'id du "forum" (très facultatif comme champ, rien à voir avec mon problème), "message" contient le texte et le reste très logique.
Résumé : Une table contient les sujets, et une autre contient les réponses avec un champ qui les associent à un sujet.
Ce système n'est très certainement pas le meilleur, j'ai surmonté tous les problèmes avec des solutions abracadabrantes par contre, si je ne trouve pas de solution à mon problème présent, je me résignerai et je reconstruirai une partie du fonctionnement des forums.
Donc, mon problème:
Quand je veux faire un listing de tous les messages d'un membre, je dois rechercher dans deux tables (forums_sujets et forums_messages). Forums_sujets contenant tous les sujets
ouverts par ce membre, forums_messages contenant toutes les réponses apportées par ce membre.
Exemple:
- Alexbad poste un nouveau sujet à 17:30
- Alexbad poste une réponse sur un autre sujet à 17:35
- Alexbad poste un nouveau sujet à 18:00
- Alexbad poste une réponse sur un autre sujet à 18:10
Je voudrais qu'en cliquant sur "Voir tous les messages de Alexbad", ça m'affiche ces messages dans cet ordre. Par contre, le dilemme : comment faire s'ils ne sont pas dans la même table pour conserver cette chronologie?
Merci, j'espère avoir été plus explicite sur la nature du problème
Oui, j'admets qu'en relisant ça demeure vague.
J'ai deux tables : une pour stocker les sujets :
[code]CREATE TABLE `forums_sujets` (
`id` mediumint(9) NOT NULL auto_increment,
`sujet` varchar(255) NOT NULL default '',
`par` varchar(255) NOT NULL default '',
`date` varchar(255) NOT NULL default '',
`message` longtext NOT NULL,
`forum` mediumint(9) NOT NULL default '0',
`nbre_vu` mediumint(9) NOT NULL default '0',
PRIMARY KEY (`id`)
);[/code]
Le champ "sujet" contient le [b]titre[/b] du post, le champ "par" contient l'auteur, le champ "date" contient un timestamp (bien qu'en VARCHAR 255), "message" contient le texte du post, "forum" contient le id du forum dans lequel le sujet se trouve, et "nbre_vu" le nombre de fois que le topic a été vu.
Cette table ne contient que les sujets. Par exemple, ici si on serait sur mes forums, on ne trouverait que dans cette table le premier post que j'ai fait au début. Le message que je suis en train de poster et celui de [b]Truc[/b] serait placés dans une table "forums_messages" :
[code]
CREATE TABLE `forums_messages` (
`id` mediumint(9) NOT NULL auto_increment,
`sujet` varchar(255) NOT NULL default '',
`forum` varchar(255) NOT NULL default '',
`message` longtext NOT NULL,
`par` varchar(255) NOT NULL default '',
`date` varchar(255) NOT NULL default '',
`titre` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
)[/code]
Le champ "sujet" contient le id du sujet (pas le titre du post, ça correspond au champ "id" dans la table forums_sujets). Ensuite, "forum" contient l'id du "forum" (très facultatif comme champ, rien à voir avec mon problème), "message" contient le texte et le reste très logique.
Résumé : Une table contient les sujets, et une autre contient les réponses avec un champ qui les associent à un sujet.
Ce système n'est très certainement pas le meilleur, j'ai surmonté tous les problèmes avec des solutions abracadabrantes par contre, si je ne trouve pas de solution à mon problème présent, je me résignerai et je reconstruirai une partie du fonctionnement des forums.
Donc, mon problème:
Quand je veux faire un listing de tous les messages d'un membre, je dois rechercher dans deux tables (forums_sujets et forums_messages). Forums_sujets contenant tous les sujets [b]ouverts[/b] par ce membre, forums_messages contenant toutes les réponses apportées par ce membre.
Exemple:
[list]
[*]Alexbad poste un nouveau sujet à 17:30
[*]Alexbad poste une réponse sur un autre sujet à 17:35
[*]Alexbad poste un nouveau sujet à 18:00
[*]Alexbad poste une réponse sur un autre sujet à 18:10[/list]
Je voudrais qu'en cliquant sur "Voir tous les messages de Alexbad", ça m'affiche ces messages dans cet ordre. Par contre, le dilemme : comment faire s'ils ne sont pas dans la même table pour conserver cette chronologie?
Merci, j'espère avoir été plus explicite sur la nature du problème