Comment faire un SELECT DISTINCT en ayant plusieurs champs? [Résolu]

Messages postés
261
Date d'inscription
mardi 2 juillet 2002
Dernière intervention
10 mars 2014
- 7 févr. 2010 à 21:22 - Dernière réponse :
Messages postés
2382
Date d'inscription
lundi 4 février 2002
Dernière intervention
29 décembre 2012
- 20 févr. 2010 à 06:37
Hello les Loulous !

Dans une table je peux avoir plusieurs fois le même mail, donc pour récupérer une liste de mail unique je fais :
sql = "SELECT DISTINCT mail FROM matable WHERE mail"

Mon problème c'est que comme ça je ne récupère que "mail" et en fait j'aimerais pouvoir avoir le contenu des autres champs, comment on fait?
On ne peut pas utiliser DISTINCT? Comment faire autrement

(car sql = "SELECT DISTINCT mail,prenom,nom FROM matable WHERE mail ca me renvoie toute la liste.. idem si je mets SELECT * ...)

Mouhiiin help me
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
261
Date d'inscription
mardi 2 juillet 2002
Dernière intervention
10 mars 2014
- 19 févr. 2010 à 22:47
3
Merci
J'ai trouvé une astuce

Il y a surement un moyen mieux de faire que se reconnecter à la base de donnée je ne sait combien de fois dans une boucle, mais bon j'ai rien trouvé d'autre..
J'ai utilisé bêtement LIMIT 1 dans la boucle while:

mysql_query("SELECT date FROM matable WHERE forum='$forum' AND sujet='$sujet' ORDER BY date DESC LIMIT 1");
comme ca il me l'affiche qu'une fois..

Bref je sais pas si je suis clair, mais bon ca marche donc j'suis content..
Si qqun a le même problème qu'il me le dise et je m'expliquerai mieux

merci quand même pour votre aide!!
A++ et bonne prog :)

Merci mailliam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de mailliam
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
- 8 févr. 2010 à 00:20
0
Merci
Salut,

T'as regardé du côté de GROUP BY ?

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Commenter la réponse de neigedhiver
Messages postés
2382
Date d'inscription
lundi 4 février 2002
Dernière intervention
29 décembre 2012
- 8 févr. 2010 à 09:13
0
Merci
Je suis bête ou j'ai pas compris ce que tu cherchais ?
Tu peux nous donner un exemple de la donnée d'entrée et du résultat voulu ?
S.
Commenter la réponse de syndrael
Messages postés
261
Date d'inscription
mardi 2 juillet 2002
Dernière intervention
10 mars 2014
- 8 févr. 2010 à 22:45
0
Merci
Coucou, merci d'avoir répondu :)
et fait je simplifais un peu avec mon histoire de mail, mais c'est pareil..

et fait j'ai un problème avec mon forum:
j'ai une table (ici matable) qui contient le nom de l'auteur, le forum, le titre du sujet, le message et la date.

J'aimerai classer la liste des sujets par la date du + récent message.
et évidement que le sujet n'apparaisse qu'une seule fois..

j'arrive pas à classer par date mes sujets, ni à afficher la date du message le + récent

Voici mon code: (pour afficher la liste des sujet du $forum="mécanique")

$reponse = mysql_query("SELECT DISTINCT sujet FROM matable WHERE forum='$forum' ORDER BY date DESC");

// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<?php echo $donnees['sujet']; ?>

Le dernier message date du <?php echo $donnees['date']; ?>
<?
}
// Fin de la boucle

-Donc pourquoi il ne se classe pas par date?
-et comment je peux aller chercher la date? car si je fais SELECT * ca marche pas..

mais raconté comme ça, je ne sais pas si c'est bcp + clair
Commenter la réponse de mailliam
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
- 8 févr. 2010 à 22:52
0
Merci
Salut,

date est un mot réservé à MySQL qu'il n'est pas possible d'utiliser pour un nom de table sans l'échapper préalablement.
Il faut faire ORDER BY `date` DESC
Les guillemets ` sont importants, ce n'est pas ' ni "

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Commenter la réponse de neigedhiver
Messages postés
261
Date d'inscription
mardi 2 juillet 2002
Dernière intervention
10 mars 2014
- 9 févr. 2010 à 21:28
0
Merci
Salut mon tas d'neige d'hiver

J'ai fait $reponse = mysql_query("SELECT DISTINCT sujet FROM matable WHERE forum='$forum' ORDER BY `date` DESC");

et ca me classe tjs rien par date
de + comment je peux après afficher le contenu du champs date?

Merci de ta précieuse aide
Commenter la réponse de mailliam
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
- 9 févr. 2010 à 22:39
0
Merci
T'as essayé en appelant le champ date autrement ? Parce que si ça se trouve, il veut même pas en le protégeant avec des guillemets...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Commenter la réponse de neigedhiver
Messages postés
261
Date d'inscription
mardi 2 juillet 2002
Dernière intervention
10 mars 2014
- 12 févr. 2010 à 17:56
0
Merci
nan ca marche tjs pas.. mais limite le problème de date c'est pas grave..

Comment je peux faire pour voir le contenu des autres champs?

C'est possible avec DISTINCT? Ou comment faire autrement?
Commenter la réponse de mailliam
Messages postés
27
Date d'inscription
dimanche 6 décembre 2009
Dernière intervention
13 février 2010
- 13 févr. 2010 à 11:46
0
Merci
Hello,

Je ne pense pas que celà soit possible avec DISTINCT.
Mais là, j'vois pas comment faire pour afficher ce que tu veux.

J'y réfléchi ...

As-tu regardé sur les sources d'un petit forum (genre fluxBB par exemple) pour voir comment ils affichent leurs données pour générer ce genre de page ?
Commenter la réponse de Gr3g69
Messages postés
261
Date d'inscription
mardi 2 juillet 2002
Dernière intervention
10 mars 2014
- 18 févr. 2010 à 19:52
0
Merci
Tcho!
C'était une bonne idée le p'tit forum fluxBB mais je trouve pour comment ils font..

Je vais chercher encore, ca m'énerve car ca me semble tout simple mais rien ne marche

J'te dis si je trouve qque chose..
Commenter la réponse de mailliam
Messages postés
2382
Date d'inscription
lundi 4 février 2002
Dernière intervention
29 décembre 2012
- 20 févr. 2010 à 06:37
0
Merci
C'est bien si tu as trouvé 'une' solution, l'essentiel est que ça puisse te faire avancer.
Par contre la connexion/déconnexion n'est pas la bonne solution techniquement, je te confirme.. LOL !!
Malgré mes efforts je ne suis pas arrivé à comprendre ton besoin, pourtant j'avais essayé.
S.
Commenter la réponse de syndrael

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.