Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Choix dans la date

8 réponses
Avatar
ND
Bonjour,

Je souhaiterais créer une page php qui me permettrait d'afficher un tableau
reprenant des informations tirées d'une base de données. Là où je bloque,
c'est que je souhaiterais proposer un choix entre deux dates et afficher
tous les enregistrements passés entre ces deux dates sachant que la date des
enregistrements est dans la table en Varchar et qu'elle est de la forme
"jj/mm/aaaa".

Une bonne âme aurait-elle une piste à me proposer ?

Merci d'avance !

ND

8 réponses

Avatar
Sylvain Moreau
"ND" a écrit dans le message news:
bm32t2$jrq$
Bonjour,


Salut à toi, amateur de contrepéteries grasses !

> Je souhaiterais créer une page php qui me permettrait d'afficher un


tableau
reprenant des informations tirées d'une base de données. Là où je bloque,
c'est que je souhaiterais proposer un choix entre deux dates et afficher
tous les enregistrements passés entre ces deux dates sachant que la date


des
enregistrements est dans la table en Varchar et qu'elle est de la forme
"jj/mm/aaaa".



A mon avis, c'est une très mauvaise idée à la base de stocker des dates dans
un champ de type varchar : on arrive très vite à des blocages de ce genre.
La priorité est de passer ce champ en type date, ce qui te permettra par la
suite d'utiliset toutes les fonctions date (très pratiques) dans les SELECT
de MySQL (je suppose que tu utilises MySQL)

Le mieux est de procéder de la manière suivante dans un von vieux script PHP
:
- sélectionner tous les enregistrements de la table
- passer ton champ varchar au format date (ALTER TABLE `matable` CHANGE
`monchamp` `monchamp` DATE DEFAULT NULL)
- manipuler avec PHP tes varchar (avec la fonction explode(), ça ne devrait
pas trop poser de problème)
- faire un UPDATE de chaque enregistrement en insérant la date au bon format
dans le champ qui sera alors de type date

bien sûr faire une sauvegarde de la table avant de faire tout ça

et après pour sélectionner entre deux dates, rien de plus facile :
SELECT * FROM matable WHERE monchampdate>='2002-12-25' AND
monchampdate<='2003-10-09'

Et voilà, j'espère avoir répondu à ta question

Bon courage


--
Sylvain Moreau
Open Web Solutions : solutions logiciels libres Internet et réseaux pour les
entreprises : http://www.ows.fr
5, rue de l'échiquier - 75010 Paris
01 42 46 05 21
Avatar
Michaël Bascou
Le 09.10.2003 11:33, Sylvain Moreau a écrit :
A mon avis, c'est une très mauvaise idée à la base de stocker des dates dans
un champ de type varchar : on arrive très vite à des blocages de ce genre.
La priorité est de passer ce champ en type date, ce qui te permettra par la
suite d'utiliset toutes les fonctions date (très pratiques) dans les SELECT
de MySQL (je suppose que tu utilises MySQL)



Tout à fait d'accord :-)

Le mieux est de procéder de la manière suivante dans un von vieux script PHP



Une autre solution, tout en SQL :

1. ajouter une nouvelle colonne de type "date"
alter table test_date add column new_date date;

2. mettre à jour cette colonne à l'aide l'ancienne colonne :
update test_date set
new_date=concat(substring(old_date,7,4),'-',substring(old_date,4,2),'-',substring(old_date,1,2));

3. droper l'ancienne colonne
alter table test_date drop column old_date;

4. renommer la nouvelle colonne
alter table test_date change new_date old_date date.

Cdt,
Michaël
Avatar
ND
Merci beaucoup à vous deux pour ces belles explications !!

Je ferme mon dictionnaire de contrepétries et je me remets au boulot ! ;-)

Bye !

ND
Avatar
Fred Darchambault
ND wrote:
Merci beaucoup à vous deux pour ces belles explications !!

Je ferme mon dictionnaire de contrepétries et je me remets au boulot ! ;-)



si tu n'as pas une panne de micro ;-)
Avatar
Fred BROUARD - SQLpro
Alors comme ça on poste une contrepétrie plutôt douteuse comme titre
d'une question soit disant intelligente !!!

Bravo...

ND a écrit:
Bonjour,

Je souhaiterais créer une page php qui me permettrait d'afficher un tableau
reprenant des informations tirées d'une base de données. Là où je bloque,
c'est que je souhaiterais proposer un choix entre deux dates et afficher
tous les enregistrements passés entre ces deux dates sachant que la date des
enregistrements est dans la table en Varchar et qu'elle est de la forme
"jj/mm/aaaa".

Une bonne âme aurait-elle une piste à me proposer ?

Merci d'avance !

ND





--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
ND
Le problème des pannes de micro, c'est que ça me brouille l'écoute !!
Avatar
ND
Ma foi, l'art de décaler les sons n'enlève rien à l'affaire.
Avatar
Fred BROUARD - SQLpro
Comme quoi les polytechniciens s'enlèchent dans leurs calculs...

A +

ND a écrit:
Ma foi, l'art de décaler les sons n'enlève rien à l'affaire.





--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************