Bonjour !

J'ai différents problèmes sur la requête que voici:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
WITH RECURSIVE children(zid,date,cid,parent,content,uid,level) AS (
	SELECT tc.".$Column.",tc.comment_pubdate,tc.comment_id,tc.comment_parent,tc.comment_content,tc.user_id, 0
	FROM toine.".$Table." tc
	WHERE tc.".$Column." = :zone_id AND tc.comment_parent = '0'
		  UNION ALL
	SELECT ".$Column.",comment_pubdate,comment_id,comment_parent,comment_content,user_id, e.level+1
	FROM toine.".$Table." tc, children e
	WHERE tc.comment_parent = e.cid
		)
SELECT zid,date,cid,parent,content,uid,level 
FROM children
ORDER BY parent, cid, level

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$Table = xxxx_comments (news_comments)
$Column = xxxx_id (news_id)
Voici la structure de ma table:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
                                      Table " toine.news_comments "
     Colonne     |  Type   |                                Modificateurs
-----------------+---------+------------------------------------------------------------------------------
 comment_id      | integer | non NULL Par défaut, nextval('toine.news_comments_comment_id_seq'::regclass)
 comment_pubdate | bigint  |
 comment_plus    | bigint  | non NULL Par défaut, 0
 comment_minus   | bigint  | non NULL Par défaut, 0
 comment_content | text    |
 news_id         | bigint  |
 user_id         | bigint  |
 comment_parent  | bigint  | non NULL Par défaut, 0
 user_ip         | bigint  |
Index :
    "news_comments_pkey" PRIMARY KEY, btree (comment_id)

Pour les problèmes:

1) Quel que soit l'ordre appliqué mes sous-commentaires ne sont pas greffés à leur commentaire parent.
Ce qui fait que quand on répond au commentaire 8 le sous-commentaire va se retrouver en bas de page.
Je me demande si cela ne provient pas des requêtes dans children, mais quel que soit les docs je ne trouve absolument rien.

2) Existe-t-il une solution plus légère sous postgres pour arriver au même résultat ? A savoir que je ne veux pas faire plusieurs boucles de traitements sur mon script php.

3) Est-ce que je peux affecter LIMIT aux parents ? En gros je voudrais qu'il n'y ait que les parents qui soient pris en compte par la limite pour éviter de couper les fils de discussions.

Merci d'avance pour votre aide, Toine