Page 1 sur 1

php mysql déduction dans un select

Posté : 23 déc. 2011, 11:32
par tapi
Bonjour,
Dans une base de données j'ai des enregistrements détenant un top à "1" ou à "2" et une date de mise à jour.
J'arrive à récupérer les enregistrements avec top à "2" et date de mise à jour différente de la date du jour et aussi ceux avec top à "1" (facile jusque là)
Mais je souhaite en retirer les enregistrements ayant un top à "1" et existant déjà dans la sélection (c'est à dire ceux qui détiennent le top à "2" et la date de mise à jour différente de la date du jour.
Auriez-vous une idée ?
Merci

Re: php mysql déduction dans un select

Posté : 23 déc. 2011, 12:40
par moogli
bonjour,

oui c'est surement possible, mais sans les tables on ne peux pas beaucoup t'aider hors mis en t'indiquant que cela ce fait surement avec un prédicat correct (where) voir une sous requête.


@+

Re: php mysql déduction dans un select

Posté : 23 déc. 2011, 15:35
par tapi
Voilà un extrait de la base,
Je souhaite donc récupérer les enregistrements qui sont à "2" et dont le jour est différent du jour présent (vendredi) et sinon les enregisterements à "1"

indicatif jour top
AAAA lundi 0
AAAA vendredi 2
AAAA mardi 0
AAAA jeudi 1
BBBB mercredi 2
BBBB lundi 1

donc, il faut que j'obtienne :
AAAA jeudi 1
BBBB mercredi 2

A vot' bon coeur !

Re: php mysql déduction dans un select

Posté : 24 déc. 2011, 21:15
par moogli
select * from table where (jour <> 'lejourdujour' and top=2) or top=1;

tu peux obtenir "lejourdujour" avec la fonction [url=http:///www.php.net/date]date[/url] de php et le paramètre l (L minuscule) après je crois qu'en jouant avec la locale tu peux l'avoir direct en français, sinon la traduction n'est pas trop dur à faire :)

@+

Re: php mysql déduction dans un select

Posté : 27 déc. 2011, 12:40
par tapi
Merci pour ta réponse, mais de ce cas, j'obtiens deux fois BBBB.
Une fois car le top est à 1 et une autre fois car le jour est différent du jour de saisie (le vendredi).
Mon problème est de n'obtenir qu'un seul enregistrement quand il y a doublon et que celui-ci contienne le top à 2.
Merci quand même.

Re: php mysql déduction dans un select

Posté : 28 déc. 2011, 00:42
par ouckileou
Le jour de la semaine s'obtient directement avec une fonction MySQL: DAYOFWEEK, voir ici: http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html ou dans la FAQ post59136.html#p59136

Pour supprimer les doublons dans une requete voir DISTINCT.

Re: php mysql déduction dans un select

Posté : 28 déc. 2011, 14:45
par sirakawa
Voilà un extrait de la base,
Je souhaite donc récupérer les enregistrements qui sont à "2" et dont le jour est différent du jour présent (vendredi) et sinon les enregisterements à "1"

indicatif jour top
AAAA lundi 0
AAAA vendredi 2
AAAA mardi 0
AAAA jeudi 1
BBBB mercredi 2
BBBB lundi 1

donc, il faut que j'obtienne :
AAAA jeudi 1
BBBB mercredi 2

A vot' bon coeur !
avec limit 1 order by top?

Re: php mysql déduction dans un select

Posté : 29 déc. 2011, 18:19
par tapi
Hélàs, non, ça ne ressort qu'un seul enregistrement.