Vous n'êtes pas identifié(e).
Bonsoir,
J'ai une requête comme ceci :
qui me donne ce résultat dans PhpMyAdmin :
Ce qui m'interesse, c'est la colonne group_concat. Ici les valeurs semblent bonnes.
Quand je les affiche avec un print_r en sortie de ma boucle, j'obtiens ceci :
On voit que certaines valeurs sont bonnes et que d'autres ne sont pas dans le bon ordre. Par exemple, dans PhpMyAdmin pour Ajaccio j'ai 14,11,12,10,8 et dans print_r j'ai 11,12,10,8,14. En revanche, pour Paris c'est bon.
Qui peut me dire où se trouve mon erreur ? et pourquoi certaines valeurs sont bonnes surtout.
Merci d'avance
Hors ligne
Bonjour,
Si le résultat de requête est bon, alors c'est que vous devez avoir un traitement PHP intermédiaire qui doit être responsable de cela. Sans voir le code, il est difficile de vous aider.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
Est ce que phpmyadmin ne rajouterai pas automatiquement un order by quelque part ? En tout cas cela serait sans doute une bonne idée d'en mettre un, car sinon l'ordre dépend uniquement de l'ordre d'entrée (et encore, en cas de crash et de réparation des tables mysql, je ne suis pas sur qu'il ne modifie pas cet ordre par defaut).
@+
ManicoW
la v2, c'est tabou, on en viendra tous a bout
Hors ligne
Saluton,
Sachant que la fonction GROUP_CONCAT accepte sa propre clause ORDER BY.
Mais comme l'a justement fait observer Jc, comme nous ne savons pas par quel code PHP est chargé l'array objet du print_r en sortie de boucle, on se perd forcément en conjectures.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonsoir,
Voici comment se présente donc le contenu de la table interessante. (Pour chaque journée jouée ici de 1 à 5, la colonne de droite donne le classement de l'équipe. Pour cette colonne, les données sont justes et de toute façon, ce n'est pas là que se trouve le problème.
Ensuite, mon code php simplifié :
$class=array();
$equipe=array();
$result = $db->query('SELECT t1.id_club, t1.club, t1.championnat, t1.actif, t2.id_club, t2.journee, GROUP_CONCAT( t2.classement ) FROM '.$_PRE.'clubs AS t1, '.$_PRE.'graph AS t2 WHERE t1.id_club = t2.id_club AND t2.journee < "'.$journee.'" GROUP BY t1.club');
while ($row = $result->fetch()) {
$equipe[] = ucfirst($row['1']);
$class[] = $row['6'];
}
print_r($class);
et donc les valeurs retournées sont celles de mon 1er message et début de ce post avec certaines équipes où le classement apparait dans le bon ordre et d'autres dans un mauvais ordre. Ou plus exactement décalé. Ex : 34512 au lieu de 12345.
J'espère que mes explications sont claires ...
Merci pour votre aide
Hors ligne
Saluton,
Tu devrais essayer avec cette clause ORDER BY au sein de la fonction GROUP_CONCAT
la clause GROUP BY ne permettant pas d'établir, a priori, l'ordre du classement dans le GROUP_CONCAT.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonsoir, ta solution fonctionne. Merci beaucoup pour ton aide ainsi qu'aux autres personnes qui avaient répondu.
Hors ligne