problème usort() avec un tableau de 1000 - 2000 lignes - PHP - Programmation
Marsh Posté le 16-11-2007 à 19:07:11
C'est juste un tableau, je le choppe en base de donnée.
Et donc je veux le trier en fonction des colones.
Ce que je fais avec usort() et une fonction compare customisée.
Mais c'est très long.
Marsh Posté le 17-11-2007 à 01:55:53
Déja pour les tris par date, tu peux faire une simple comparaison de chaînes ("2001-04-02" > "1998-12-28" ) et virer 7-8 lignes... Voire les retourner en compact ("20010402 > 19981228) et faire une comp de nombres c'est ptet plus rapide...
Sinon c'est en utilisant quel tri que ça rame ? tous ?
T'as pas moyen de le faire direct en SQL ?
Enfin 30 sec pour que 2000 lignes c'est quand même bizarre (jamais testé cela dit)
Marsh Posté le 18-11-2007 à 02:13:20
BAh si ça vient d'une base de donnée, tu fais tes tris directement en sql et tout ira bien mieux
Marsh Posté le 18-11-2007 à 10:03:03
Oui c'est une possibilité, pas trop adaptée dans mon cas vu l'archi de mon code ( jvais pas tout vous expliquer ).
Mais ya pas un autre algo de tri? style que le php soit pas obligé de parcourir tout le tableau a chaque fois pour trouver ou placer sa valeur?
Marsh Posté le 22-11-2007 à 10:23:26
En gros j'ai plusieurs tables, et je peux pas faire un traitement direct sur les infos qui sortent des requetes vu que les différentes requetes ne sont pas liées entre elles.
Comme c'est pas clair :
SELECT gna gna FROM gna gna ORDER BY gna gna
SELECT truc FROM truc ORDER BY truc
Mais truc et gna font partie d'une même ligne de tableau. Donc les tri par requetes sont pas possibles.
Ici "1500" et "€" ne viennent pas de la même table que "Th" et "PRODUITTEST", meme si ils correspondent tous a la même ligne.
Marsh Posté le 22-11-2007 à 15:32:29
Tu connais les jointures de tables ?
Marsh Posté le 22-11-2007 à 19:42:51
J'ai plusieurs requetes sur truc et une sur gna, le tout n fois, ou n est dynamique.
Marsh Posté le 23-11-2007 à 12:50:14
Tu veux dire qu'une jointure ne marcherait pas ?
Je mets ma main à couper que tu peux faire le tout en une seule requete.
Marsh Posté le 15-11-2007 à 17:27:35
Voila je souhaite trier un tableau de valeur.
J'utilise usort avec un teableau qui contient ce genre de trucs
TH PRODUITTEST PRODUIT 1500 € PAR PRO 01/01/2007 45
Sauf que quand on passe a 1000-2000 lignes, le usort il fait bobo au serveur en dépassant allegrement les 30 sec d'execution du script.
Vous avez une autre proposition d'utilisation d'un algo de tri de tableau avec les trucs que j'ai spécifié dans la fonction compare?
Faut impérativement que ca marche pareil que dans l'état la, mais en plus vite en fait.