pb de requete SELECT multi-condition de nombre

Eléphanteau du PHP | 37 Messages

21 févr. 2006, 18:08

Bonjour,
voici la requete qui me pose problème:
$sql2 = "SELECT achat FROM live WHERE
 (jour>='$jour'and mois>='$mois'and annee='$annee') 
AND
 (jour<='$jour2'and mois<='$mois2'and annee='$annee2') ";
en fait je veux faire une requete de recherche entre 2 dates, le pb est que l'on peut avoir le meme chiffre dans les 2 champs jours et qu'il ne comprend pas l'intervalle entre les 2 datesdu au mois.

Avez vous une esquisse de solution voir une solution car la je :?:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

21 févr. 2006, 20:53

Salut,

pourquoi ne pas regrouper tes 3 colonnes en une seule, au format DATE ?
Tu réglerais ton problème avec une requête beaucoup plus simple, et accessoirement ta table prendrait moins de place ;)

Eléphant du PHP | 52 Messages

21 févr. 2006, 20:56

utilise "between" :)

doc : http://dev.mysql.com/doc/refman/5.0/fr/ ... ators.html

et travaille avec des timestamps c'est plus simple ;)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

21 févr. 2006, 21:13

utilise "between" :)
oui, mais ça implique donc un changement de format :)
et travaille avec des timestamps c'est plus simple ;)
Plus simple que les DATE ?

Eléphant du PHP | 52 Messages

21 févr. 2006, 22:05

tu as posté lorsque je rédigeais mon post. (cherchais dans la doc :p)

pour le format date ou le timestamp, ça revient à manipuler soit en sql soit en php, donc les 2 se valent. Peut-être une préférence c'est vrai pour le champ de type date qui est moins "limité" que le timestamp mais bon .. dans ce cas-ci ça revient au même :)

philou
Invité n'ayant pas de compte PHPfrance

22 févr. 2006, 10:56

le pb de date c'est que c'est au format US donc à l'envers du format FR

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 févr. 2006, 13:07

le pb de date c'est que c'est au format US donc à l'envers du format FR
Ce n'est pas un problème pour le format d'affichage mais un problème pour les calculs de date (la preuve :wink: )
Regarde l'exemple 2 portant sur DATE_FORMAT() de la FAQ.

Donc si tu as la possibilité d'effectuer un changement de type de champ n'hésite pas

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

22 févr. 2006, 13:13

Puisque je viens de la rajouter, regarde l'intro du numéro 2 ici :
http://www.phpfrance.com/forums/voir_sujet-8323.php
Dans une colonne de type DATE, on a ce format : AAAA-MM-JJ
Ce format est le format ISO (et non anglo-saxon), adopté afin de faciliter les tris. Il est peu judicieux d'adopter un autre type et format (ex : VARCHAR JJMMAAAA) pour stocker des dates, qui prendra plus de place disque et vous posera d'énorme problèmes lors de calculs.
La mise en forme se fait uniquement au moment de la sélection et de l'affichage.