Mysql afficher les résultats de 2 tables
Résolu/Fermé
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
-
5 nov. 2008 à 13:37
tacki Messages postés 20 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 18 novembre 2013 - 5 nov. 2008 à 17:16
tacki Messages postés 20 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 18 novembre 2013 - 5 nov. 2008 à 17:16
A voir également:
- Mysql afficher les résultats de 2 tables
- Afficher mot de passe wifi android - Guide
- Word numéro de page 1/2 - Guide
- Tables des matières word - Guide
- Mysql community server - Télécharger - Bases de données
- 2 ecran pc - Guide
11 réponses
Bonjour,
Quels sont les clé primaires de tes 2 tables, car elles ne sont pas évidentes. Une date en clé primaire paraît incohérent (Il peut y a voir 2 entrainements à la même date...). Pareil pour le lieu de résultat...
Pourrais-tu préciser quel serait le résultat de ta requête ?
Est-ce que la requête suivante te conviendrais ?
Cordialement,
Nikko
Quels sont les clé primaires de tes 2 tables, car elles ne sont pas évidentes. Une date en clé primaire paraît incohérent (Il peut y a voir 2 entrainements à la même date...). Pareil pour le lieu de résultat...
Pourrais-tu préciser quel serait le résultat de ta requête ?
Est-ce que la requête suivante te conviendrais ?
SELECT * FROM resultat r, entrainement e WHERE r.(clé primaire de résultat)=e.(clé primaire d'entrainement);
Cordialement,
Nikko
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 15:19
5 nov. 2008 à 15:19
Ce que j'utilise c'est l'id du membre, qui est à la fois dans résultat et dans entrainement.
Pour la requête je vais essayer avec l'id du membre.
Merci.
Pour la requête je vais essayer avec l'id du membre.
Merci.
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 15:33
5 nov. 2008 à 15:33
Je n'arrive pas à la faire fonctionner
De plus il faudrait pouvoir trier par date_entrainement je pense par ORDER BY date_entrainement ASC.
Je sais pas trop quoi faire !
De plus il faudrait pouvoir trier par date_entrainement je pense par ORDER BY date_entrainement ASC.
Je sais pas trop quoi faire !
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 15:45
5 nov. 2008 à 15:45
voilà ma requet pour l'instant (j'avoue que je suis un peu paumé pour les requetes complexes !)
j'ai comme erreur:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/sites/1/ifrance.com/t/a/tacki-sport/site/index.php on line 1461 (la ligne du mysql_fetch_array donc)
Merci de m'aider !
$rec = mysql_query ("SELECT * FROM resultat r, entrainements e WHERE r.(id_membre)='".$id_membre."' AND e.(id_membre)='".$id_membre."' ORDER BY date_entrainement ASC"); while ($ent_periode = mysql_fetch_array($rec)) { // affichage }
j'ai comme erreur:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/sites/1/ifrance.com/t/a/tacki-sport/site/index.php on line 1461 (la ligne du mysql_fetch_array donc)
Merci de m'aider !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 16:00
5 nov. 2008 à 16:00
voilà j'ai essayé ça
Mais ça met toujours le même message d'erreur
$rec = mysql_query ("SELECT e.date_entrainement, e.contenu, e.duree_exacte, e.distance_realisee, e.commentaire, e.sensations, r.date_entrainement, r.contenu, r.duree_exacte, r.distance_realisee, r.commentaire, r.sensations FROM resultat r, entrainements e WHERE r.id_membre='".$id_membre."' AND e.id_membre='".$id_membre."' ORDER BY date_entrainement ASC");
Mais ça met toujours le même message d'erreur
Essai de créer une variable $query par exemple :
$query = "SELECT e.date_entrainement, e.contenu, e.duree_exacte, e.distance_realisee, e.commentaire, e.sensations, r.date_entrainement, r.contenu, r.duree_exacte, r.distance_realisee, r.commentaire, r.sensations FROM resultat r, entrainements e WHERE r.id_membre='".$id_membre."' AND e.id_membre='".$id_membre."'
ORDER BY date_entrainement ASC";
Fais un echo de query;
Ensuite copie colle directement dans mysql; Et regarde l'erreur
$query = "SELECT e.date_entrainement, e.contenu, e.duree_exacte, e.distance_realisee, e.commentaire, e.sensations, r.date_entrainement, r.contenu, r.duree_exacte, r.distance_realisee, r.commentaire, r.sensations FROM resultat r, entrainements e WHERE r.id_membre='".$id_membre."' AND e.id_membre='".$id_membre."'
ORDER BY date_entrainement ASC";
Fais un echo de query;
Ensuite copie colle directement dans mysql; Et regarde l'erreur
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 16:22
5 nov. 2008 à 16:22
alors j'ai essayé de copier query dans sql ça m'affiche #1052 - Column 'date_entrainement' in order clause is ambiguous
J'ai ensuite essayé la requete sans le ORDER BY et là ça m'affiche le même entrainement 12 fois !
(c'est le nombre de fois ou j'ai précisé une colonne dans SELECT)
J'ai ensuite essayé la requete sans le ORDER BY et là ça m'affiche le même entrainement 12 fois !
(c'est le nombre de fois ou j'ai précisé une colonne dans SELECT)
Essai comme ceci
$query = "SELECT e.date_entrainement, e.contenu, e.duree_exacte, e.distance_realisee, e.commentaire, e.sensations, r.date_entrainement, r.contenu, r.duree_exacte, r.distance_realisee, r.commentaire, r.sensations FROM resultat r, entrainements e WHERE r.id_membre=e.id_membre AND e.id_membre='".$id_membre."'
ORDER BY r.date_entrainement ASC";
$query = "SELECT e.date_entrainement, e.contenu, e.duree_exacte, e.distance_realisee, e.commentaire, e.sensations, r.date_entrainement, r.contenu, r.duree_exacte, r.distance_realisee, r.commentaire, r.sensations FROM resultat r, entrainements e WHERE r.id_membre=e.id_membre AND e.id_membre='".$id_membre."'
ORDER BY r.date_entrainement ASC";
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 16:27
5 nov. 2008 à 16:27
Je viens de retester j'avais un problème dans ma table, j'ai dans ma table 1 entrainement et 1 résultat correspondant normalement à la requête, cependant seul le résultat est affiché dans sql (pas l'entrainement qui est à la même date)
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 16:28
5 nov. 2008 à 16:28
je réessaye avec ton dernier post merci !!!
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 16:33
5 nov. 2008 à 16:33
ok maintenant le ORDER BY passe
J'ai bien les 2 résultats mais ils sont enregistré comme 1 seul, il y a dans le tableau 2x la colonne contenu, 2x la colonne sensations etc...
Est-ce que je peux quand même réussir à m'en servir pour faire un affichage ligne par ligne ?
Je vais tester avec plus d'entrainements et de resultats pour vérifier si ça met bien dans le bon ordre.
En tout cas merci de ton aide !
J'ai bien les 2 résultats mais ils sont enregistré comme 1 seul, il y a dans le tableau 2x la colonne contenu, 2x la colonne sensations etc...
Est-ce que je peux quand même réussir à m'en servir pour faire un affichage ligne par ligne ?
Je vais tester avec plus d'entrainements et de resultats pour vérifier si ça met bien dans le bon ordre.
En tout cas merci de ton aide !
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 16:50
5 nov. 2008 à 16:50
Le probleme c'est que vu que ça m'enregistre sur la même ligne un entrainement et un resultat, ils ne sont pas triés ensemble.
De plus j'ai testé avec 3 entrainements et 2 résultats j'obtiens:
1è ligne : Entrainement 1 (contenu, sensations,commentaire...) | Resultat 1 (contenu, sensations,commentaire...)
2è ligne : Entrainement 2 | Resultat 1
3è ligne : Entrainement 3 | Resultat 1
4è ligne : Entrainement 1 | Resultat 2
5è ligne : Entrainement 2 | Resultat 2
6è ligne : Entrainement 3 | Resultat 2
De plus j'ai testé avec 3 entrainements et 2 résultats j'obtiens:
1è ligne : Entrainement 1 (contenu, sensations,commentaire...) | Resultat 1 (contenu, sensations,commentaire...)
2è ligne : Entrainement 2 | Resultat 1
3è ligne : Entrainement 3 | Resultat 1
4è ligne : Entrainement 1 | Resultat 2
5è ligne : Entrainement 2 | Resultat 2
6è ligne : Entrainement 3 | Resultat 2
tacki
Messages postés
20
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
18 novembre 2013
5 nov. 2008 à 17:16
5 nov. 2008 à 17:16
finalement j'ai réussi avec un UNION
Merci de m'avoir aidé !!!
mysql_query ("(SELECT date_entrainement, contenu, duree_exacte, distance_realisee, commentaire, sensations FROM resultat WHERE id_membre='".$id_membre."' ) UNION ALL (SELECT date_entrainement, contenu, duree_exacte, distance_realisee, commentaire, sensations FROM entrainements WHERE id_membre='".$id_membre."') ORDER BY date_entrainement");
Merci de m'avoir aidé !!!