kamerleon
Nouveau membre
Bonjour à tous et toutes,
Le contexte :
Je souhaite afficher le résultat d'une requête de type :
[cpp]SELECT t1.champ1, t1.champ2, t2.champ1
FROM table AS t1 INNER JOIN table AS t2
ON t1.id_parent=t2.id[/cpp]
La table en question est réflexive (id_parent indique l'id d'une autre ligne dans la même table)
table(id, id_parent, champ1, champ2)
La requête est générée par un code php, soumise à phpMyAdmin puis affichée dans un tableau
Le problème n°1 :
La variable contient les valeurs de tous les champs que j'ai à afficher en double...
Pseudo-solution : je n'affichais qu'une fois sur deux les résultats (méthode très peu recommandée vu la suite)
Le problème n°2 :
Dans le cas d'une jointure sur une table réfléxive, les valeurs de t1.champ1 et de t2.champ1 ne sont pas en double.
Ce qui implique un décalage très désagréable dans le tableau d'affichage des résultat de la requête.
Le plus étrange c'est qu'à titre de vérification j'ai copié ma requête générée en php directement sous phpMyAdmin et que là tout marche très bien et phpMyAdmin ne semble, lui, pas avoir de mal à distinguer les cas où il n'y à qu'une fois la valeur de ceux où elle est double.
Ce que j'aimerais c'est avoir toujours toutes les valeurs en double dans mon résultat (là au pire je prends mon système D pour afficher quelque chose de correct) ou alors qu'on me dise d'où vient cette étrangeté.
[edit]
Désolé je pensais m'être bien exprimé.
j'envoie un requête SQL via php et je récupère le tout dans une variable.
A mon grand étonnement toutes les valeurs sont répétées deux fois SAUF celles qui sont concernées par la jointure de table réflexive : dans mon exemple il s'agit de "champ1".
Mes questions sont :
1) Pourquoi les valeurs sont-elles répétées? (c'est pour ça que je les affiche une fois sur deux)
2) SI recevoir les valeurs en double est normal, pourquoi certaines ne sont pas en double comme les autres?
Voilà, encore désolé de vous avoir embrouillé
C'était ce qui me permet d'afficher le résultat dans un tableau (Y a plein de variables mais c'est pour savoir quand revenir à la ligne)
Merci d'avance!
Le contexte :
Je souhaite afficher le résultat d'une requête de type :
[cpp]SELECT t1.champ1, t1.champ2, t2.champ1
FROM table AS t1 INNER JOIN table AS t2
ON t1.id_parent=t2.id[/cpp]
La table en question est réflexive (id_parent indique l'id d'une autre ligne dans la même table)
table(id, id_parent, champ1, champ2)
La requête est générée par un code php, soumise à phpMyAdmin puis affichée dans un tableau
Le problème n°1 :
La variable contient les valeurs de tous les champs que j'ai à afficher en double...
Pseudo-solution : je n'affichais qu'une fois sur deux les résultats (méthode très peu recommandée vu la suite)
Le problème n°2 :
Dans le cas d'une jointure sur une table réfléxive, les valeurs de t1.champ1 et de t2.champ1 ne sont pas en double.
Ce qui implique un décalage très désagréable dans le tableau d'affichage des résultat de la requête.
Le plus étrange c'est qu'à titre de vérification j'ai copié ma requête générée en php directement sous phpMyAdmin et que là tout marche très bien et phpMyAdmin ne semble, lui, pas avoir de mal à distinguer les cas où il n'y à qu'une fois la valeur de ceux où elle est double.
Ce que j'aimerais c'est avoir toujours toutes les valeurs en double dans mon résultat (là au pire je prends mon système D pour afficher quelque chose de correct) ou alors qu'on me dise d'où vient cette étrangeté.
[edit]
Désolé je pensais m'être bien exprimé.
j'envoie un requête SQL via php et je récupère le tout dans une variable.
A mon grand étonnement toutes les valeurs sont répétées deux fois SAUF celles qui sont concernées par la jointure de table réflexive : dans mon exemple il s'agit de "champ1".
Mes questions sont :
1) Pourquoi les valeurs sont-elles répétées? (c'est pour ça que je les affiche une fois sur deux)
2) SI recevoir les valeurs en double est normal, pourquoi certaines ne sont pas en double comme les autres?
Voilà, encore désolé de vous avoir embrouillé
C'était ce qui me permet d'afficher le résultat dans un tableau (Y a plein de variables mais c'est pour savoir quand revenir à la ligne)
Merci d'avance!