J'avais un souci de MATCH AGAINST en fulltext que j'ai réussi à solutionner mais du coup il me reste un petit souci de ORDER sur ma requête:

C'est une requête concaténée dynmaiquement en fonction d'un array de mots, je vous en montre un exemple de génération
voici le type de requête
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
15
16
17
18
19
20
21
 SELECT * FROM (SELECT id_art AS idprod,
	art.des1_art AS desi,
	art.desc_art AS descr,
	art.util_art AS util,
	cap.caption_rub AS mainrub,
	rub.caption_rub AS subrub,
	(des1_art LIKE  "%ris p%")  *10000 +
	MATCH ( des1_art ) AGAINST ( "ris +p" ) *1000 +
	MATCH ( keywords_art ) AGAINST ( "ris" ) *100 +
	MATCH ( desc_art ) AGAINST ( "ris" ) *10 +
	MATCH ( util_art ) AGAINST ( "ris"  ) AS Rank
FROM articles AS art
	LEFT OUTER JOIN rubriques AS rub ON art.rub_art = rub.id_rub
	LEFT OUTER JOIN rubriques AS cap ON cap.id_rub = rub.principal_rub
WHERE 
        MATCH ( des1_art, desc_art, util_art, keywords_art ) AGAINST ( "ris" IN BOOLEAN MODE )
		    OR  art.des1_art LIKE "%ris%" 
	) T 
ORDER BY 
        Rank DESC 
LIMIT 50

Je couvre le WHERE avec un like pour étendre à la chaine complète et je rajoute aussi un like * 10000 au Rank.
En console Mysql ça marche parfaitement
Le souci maintenant c'est que sur le site au travers de php il ne tient pas comte de l'ORDER by Rank

j'ai 4 enregistrements dans mon résultat de requête.

En console mes enregistrements sont bien ordonnés
10000
0
0
0

Mais, lorsque je boucle dessus avec php pour afficher le Rank j'obtiens
0
10000
0
0


Je ne m'explique absolument pas ce comportement