cs_iubito
Messages postés629Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 9 octobre 2006
-
8 déc. 2002 à 00:27
cs_iubito
Messages postés629Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 9 octobre 2006
-
23 juin 2004 à 14:12
hello!
j'arrange le script d'un forum et il me reste plus qu'un petit truc.
Bon je vé résumer
sélection des départs des discussions :
requête "SELECT id,titre,date,auteur... FROM table
order by id" //les id étant des auto-incréments, g le dernier sujet en premier. OK vous suivez?
Tant qu'il y a des résultats
{
afficher le titre du topic
sélection des réponses au topic
requete2 "SELECT parent,id,titre,date... FROM table
ORDER BY date"
afficher les titre des réponses
}
Donc ça trie d'abord les topic, ensuite les réponses par date du genre :
topic1 5 décembre 2002
+---réponse3 6 décembre
+---réponse2 6 décembre
+---réponse1 5 décembre
topic2 2 décembre 2002
+---réponse3 7 décembre
+---réponse2 4 décembre
+---réponse1 3 décembre
...
vous captez toujours? OK bon alors le dernier message posté est du 7 décembre mais le topic de ce message n'est pas le topic le plus récent donc n'est pas tout en haut.
En clair, JE VEUX obtenir
un tri des topics dans l'ordre chronologique inversé des réponse.
ma table est constitué de
id, titre, auteur, date,...,parent.
Quand parent = 0, c'est un topic, début de discussion.
Quand parent != 0, c'est une réponse. parent=1 veut dire que c'est une réponse du topic dont l'id est 1.
voilà donc j'aimerai de l'aide pour ma requête qui est : je veux afficher les id,titre,auteur,date des topics classés dans l'ordre chronologique DESC des réponses.
cs_iubito
Messages postés629Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 9 octobre 2006 11 déc. 2002 à 15:56
CREATE TABLE CSForum (
id int(11) NOT NULL auto_increment,
nom varchar(255) NOT NULL,
email varchar(255) NOT NULL,
dateCreat datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
texte text NOT NULL,
parent int(11) DEFAULT '0' NOT NULL,
remoteAddr varchar(15) NOT NULL,
titre varchar(255) NOT NULL,
reply enum('0','1') DEFAULT '0' NOT NULL,
url varchar(255) NOT NULL,
PRIMARY KEY (id)
);
cs_booth
Messages postés220Date d'inscriptionlundi 14 janvier 2002StatutMembreDernière intervention13 juin 2005 11 déc. 2002 à 16:48
SELECT a.id,a.nom FROM CSForum a,CSforum b WHERE a.parent=b.id ORDER BY b.dateCreat DESC
essai de voir ce que ça donne...
parcontre j'ai pris la synthaxe SQL d'Oracle, donc si c'est une autre base faudra que t'adapte un peu, je connais pas trop mysql
Autre remarque...
une chose bien plus simple qerait que tu update le message parent en rajoutant un champ update_date ou quelquechose comme ça... là ça serait plus simple puisque tes messages seraient trié dès le départ sur ta première requête
Là c'est àa toi de voir
cs_iubito
Messages postés629Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 9 octobre 2006 23 juin 2004 à 14:12
j'ai une solution avec un champ dateModif, et ça marche comme ça, ça tourne même très bien, alors bon...
arf, de remuer un vieux post poussiéreux comme celui-là :p
faudrait passer l'aspirateur parfois dans la maison Codes-Sources, y'a d'la poussière partout :-D
lol :o)