Page 1 sur 1

pb de requete SELECT multi-condition de nombre

Posté : 21 févr. 2006, 18:08
par philoult
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 :?:

Posté : 21 févr. 2006, 20:53
par ouckileou
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 ;)

Posté : 21 févr. 2006, 20:56
par patami
utilise "between" :)

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

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

Posté : 21 févr. 2006, 21:13
par ouckileou
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 ?

Posté : 21 févr. 2006, 22:05
par patami
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 :)

Posté : 22 févr. 2006, 10:56
par philou
le pb de date c'est que c'est au format US donc à l'envers du format FR

Posté : 22 févr. 2006, 13:07
par Truc
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

Posté : 22 févr. 2006, 13:13
par ouckileou
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.