J'ai une page sur mon site qui énumère un tas de produits, chacun avec une note d'utilisateur. J'utilise une requête pour extraire des points de données pour chaque produit («requête de détails») et une seconde requête qui renvoie la note moyenne de chaque produit («requête de classification»).Tri des résultats de MySQL en PHP ...?
Je souhaite ajouter la note de l'utilisateur pour chaque produit dans le jeu de résultats "Requête de détails", puis trier par classement dans l'ordre décroissant. J'ai lu un tas d'entrées sur Stack Overflow, php.net etc. et je pense que je dois utiliser usort() avec une fonction personnalisée, mais chaque fois que je passe mon résultat MySQL à usort(), je reçois une erreur php disant l'objet que je passe à usort() n'est pas un tableau. Par exemple, j'ai essayé:
$data = mysql_fetch_array($details_query);
usort($data,"compare");
L'exécution de ce qui précède entraînera une erreur indiquant que $ data n'est pas un tableau. Qu'est-ce que je fais mal?
Aussi, si quelqu'un a d'autres suggestions sur la façon d'y arriver, je serais vraiment reconnaissant. Je vais avoir un moment vraiment difficile avec cela pour une raison quelconque ...
Merci!
Faites ceci dans la requête. C'est le moyen le plus simple. Peut-être poser une question distincte sur la façon de faire cela, y compris plus de détails sur la structure de la table –
Il n'y a vraiment presque jamais de raison de trier les données de la base de données en PHP. Dans presque tous les cas, cela peut être fait beaucoup plus rapidement en SQL. – Jonah
Salut Pekka, à cause de la structure de mes tables, je ne pense pas que je puisse le faire dans une requête. La "requête de détails" extrait les enregistrements individuels en fonction du pays et la "requête de classement" est agrégée entre les pays. Je suis sûr que je dois faire le tri post-requête en php. – Chris