Page 1 sur 1
pb affichage en double
Posté : 11 juil. 2005, 17:14
par Justone
Bonjour
Alors voila j'ai plusieurs enregistrments dans un champ de ma bdd.
Certains de ces enregistrements sont identiques.
J'ai écrit un script permettant d'affiche ma bdd, or je voudrais que les enregistrements qui sont identiques ne soint affichés qu'une seule fois
Cmt faire??
Posté : 11 juil. 2005, 17:20
par zeus
Posté : 11 juil. 2005, 17:27
par Justone
merci je savais que DISTINCT existais, je l'ai meme essayé mais ca ne fonctionne pas comme je veux!!
le probleme est que je voudrais distinct seulement sur le champ tache
$str_requete = "SELECT id,tache,statut FROM liste WHERE periodicite='Six-Monthly'";
Posté : 11 juil. 2005, 17:31
par zeus
$str_requete = "SELECT id, DISTINCT(tache),statut FROM liste WHERE periodicite LIKE 'Six-Monthly'";
Posté : 11 juil. 2005, 17:32
par Justone
Je l'avais fait et j'ai obtenu une erreur, c'est pour ca que j'ai posté sur ce forum!!
Erreur SQL !
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT(tache),statut FROM liste WHERE periodicite LIKE 'Six-M
Posté : 11 juil. 2005, 17:35
par Augure
DISTINCT permet d'afficher les ligne doublons (ou plus) qu'une seul fois, c'est à dire les lignes ayant ayant le même id ET tache ET status
Dis nous ce que tu veux afficher, car un DISTINCT sur une seul colonne je ne comprend pas.
Posté : 11 juil. 2005, 17:38
par Augure
DISTINCT permet d'afficher les ligne doublons (ou plus) qu'une seul fois, c'est à dire les lignes ayant ayant le même id ET tache ET status
Dis nous ce que tu veux afficher, car un DISTINCT sur une seul colonne je ne comprend pas.
Posté : 11 juil. 2005, 17:38
par Justone
Et bien j'ai des id différents a chaque fois mais des taches qui ont le meme nom, c a d qu'une tache a plusierus id
Lorsque je veux afficher toutes les taches de ma table, je ne veux pas de doubles.
Voila!
Posté : 11 juil. 2005, 17:56
par Augure
$str_requete = "SELECT DISTINCT tache FROM liste WHERE periodicite = 'Six-Monthly'";
Ton modéle physique de base de données est étrange.
J'ai aussi supprimer "statut" de la requête.
C'est ok pour toi comme ça ?
Posté : 11 juil. 2005, 18:14
par Justone
J'ai besoin de faire select sur id et statut aussi!!
Posté : 11 juil. 2005, 18:24
par Augure
DISTINCT et DISTINCTROW sont synonymes et indique que les doublons doivent être éliminés du résultat.
Si tu as ('tache1' , 10 , A) et ('tache1' , 11 , A ) il s'agit de deux enregistrements différents. Donc les deux enregistrements sont affichés.
Question si tu as les enregistrements suivant dans ta table :
('tache1' , 10 , A)
('tache1' , 11 , B)
('tache1' , 12 , B)
('tache2' , 13 , A)
('tache2' , 14 , B)
tu voudrais voir s'afficher quoi avec ta requête ?
Est ce que ceci repondrai pas un peu plus à ton souhait
Code : Tout sélectionner
SELECT tache , id , statutFROM liste WHERE periodicite = 'Six-Monthly'" ORDER BY tache
Posté : 11 juil. 2005, 18:31
par Justone
par exemple jai
(1, tache1, invalide)
(2, tache1, invalide)
(3, tache2, invalide)
je voudrais afficher mes taches mais je veux
tache1
tache2
et pas:
tache1
tache1
tache2
mais j'ai besion de laisser id et statut dans mon select
Posté : 11 juil. 2005, 18:36
par Augure
je voudrais afficher mes taches mais je veux
tache1
tache2
mais j'ai besion de laisser id et statut dans mon select
OK ..... pour la ligne "tache 1" tu veux quel id ? 1 ou 2 ou 1,5 ou autre ou PI ou le premier id (plus petit) ou plus grand ???????????????????

Posté : 11 juil. 2005, 18:47
par Justone
ah ah ah
mais id je m'en sers pour autre chose dans la suite du code
Posté : 11 juil. 2005, 18:51
par Augure
Si tu veux tous les id tu dois :
- soit faire 2 requêtes ; une avec distinct l'autre sans
- soit un requête sans distinct et filtrer toi même les doublons applicativement en php.