Bonjour,

J'ai un problème avec une requete que je n'arrive pas à créer, je vous explique... J'ai un système de catégorie pour lesquelles on peut envoyer des rapports. Ma requete : je selectionne tout dans ma categorie, je join la table qui contient mes rapports.

Le problème c'est quand je fais une boucle PHP ça m'affiche deux fois une catégorie (je veux en afficher qu'une seule, pour lister à l'utilisateur les catégorie dans lesquelles il a déjà envoyer un rapport).

Je ne vois vraiment pas se que je peux faire.

Merci d'avance.

10 réponses


skp
Réponse acceptée

Bonsoir, normalement la requête ci-dessous devrait donner le résultat demandé.

SELECT * FROM tours t INNER JOIN tours_pireps p ON t.id = p.tours_id WHERE p.pilotid = '$pilotid' GROUP BY t.id;

Bonjour,

Utilise le mot clé distinct dans ta requete ( select disctinct * from maTable )

Gofast77
Auteur

ça ne fonctionne toujours pas, merci quand même :)

Bonjour,
Tu peux essayer de rajouter un "GROUP BY nomCategorie" ou par "idCategorie"

Bonjour,

Pour debuguer, as-tu essayer de taper ta requête dans phpmyadmin et voir si tu as des doublons en retour ?
Si tu n'en n'as pas le problème vient de ton foreach.

Bon courage.

Edit : peux-tu nous donner la structure des deux tables ?

Oui avec la structure ça serait plus simple de pouvoir t'aider.

Gofast77
Auteur

J'ai évidement tester ma requête dans phpMyAdmin et j'ai des doublons en retour cela veut donc dire qu'il y a un problème avec cette requête.

Les deux tables sont liées par le champs "id" d'une catégorie, c'est à dire que je vais selectionner les catégories et je vais leur associer un rapport ; le WHERE de ma requête contient quant à lui l'id (qui est l'id de la personne authentifiée) et l'id de la catégorie.

Peux tu poster la description de tes tables ainsi que la requête ?

Gofast77
Auteur

Cette table c'est a table qui stocke les "catégories" (tours).

Cette table c'est la table qui stocke les rapports (tours_pireps).

La requête : SELECT * FROM tours t LEFT JOIN tours_pireps p ON t.id=p.tours_id WHERE p.pilotid = '$pilotid'

Gofast77
Auteur

Merci beaucoup pour ta réponse, ça marche parfaitement bien.