petit probleme avec des dates

Eléphant du PHP | 199 Messages

27 avr. 2007, 22:23

bonsoir,

j'ai encore un probleme... pour changer ...

alors j'explique :

a l'inscription d'un membre j'enregistre le date dans 3 colonnes de ma BDD --> JOUR MOIS AN

maintenant j'essaye de faire un petit script de stats qui me permet de compter le nombre d'inscrit par jour en limitant sur les 30 derniers jours...

Donc j'ai essayé de faire une requete SQL avec select DISTINCT mais le probleme c'est que ma date est sur 3 colonnes... donc mon je n'arrive pas a faire mon distinct...

j'ai testé d'utiliser concact mais j'ai du ou mal l'ecrire ou alors c'est pas possible de l'utiliser dans ce cas la...

donc je suis partie dans l'idée de sortie ma date de la bdd dans un format a peu pres bien :

 
while ($requete = mysql_fetch_array($sql) )
{
$date=$requete['jour'].'-'.$requete['mois'].'-'.$requete['an'];
}
par contre arrivé ici je suis bloqué, je ne sais pas comment faire pour faire un genre de DISINCT pour trier mes dates.

Il faut savoir que cette partie de mon code n'est pas accessible par un membres, c'est juste pour moi, donc si le code est un peu lourd c'est pas trop grave...

si quelqu'un peut m'aider ca serait sympa... :wink:

merci d'avance !

Mammouth du PHP | 1885 Messages

27 avr. 2007, 23:13

Bonjour,

Ma suggestion serait de modifier la structure de ta base de données afin d'utiliser le types de champ DATE natif de MySQL.

Une requête de ce style sera donc possible:

Code : Tout sélectionner

SELECT COUNT(user), created FROM users WHERE created >= SUBDATE(NOW(), INTERVAL 30 DAY) GROUP BY created
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 199 Messages

29 avr. 2007, 16:16

bonjour,

merci Xenon pour la suggestion, mais j'aimerais pouvoir le faire sans avoir a toucher la bdd...

est ce que tu pense que c'est possible ?

jed
Eléphant du PHP | 218 Messages

29 avr. 2007, 16:33

Pourquoi utiliser 3 colonnes dans une bdd pour enregistrer une date? Tu insère dans un champ la date avec le timestamp (fonction date()) et tu l'apelles avec date('d/m/Y', $sql['date'])...

Eléphant du PHP | 199 Messages

29 avr. 2007, 16:47

oui je sais bien mais le probleme c'est que au moment ou j'ai fait la bdd je ne connaisser pas ca...

et maintenant ma bdd est deja bien rempli...

jed
Eléphant du PHP | 218 Messages

29 avr. 2007, 16:54

Tu ne peux pas réserver un champ pour le timestamp? après tu n'aura plus rien à modifier et tes scripts seront plus simples...

Eléphant du PHP | 199 Messages

29 avr. 2007, 17:23

ben le truc c'est que ca me fait faire beaucoup de modifs sur le site juste pour un script qui ne me sert qu'a moi...

le script n'est pas vu par les visiteurs du site...