Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/06/2006, 22h07   #1
Débutant
 
Inscription : février 2006
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 136
Points : 16
Points : 16
Par défaut [SQL] date en français dans un tableau

Bonjour,
J'ai une table dans ma BDD qui se compose du champ "date_reel" entre-autres. Ce champs a pour format yyyy-mm-dd. Du coup, quaud j'affiche dans ma page la réponse à ma requête dans un tableau, ma date a le même format. Comment faire pour que ma date reprenne le format français ?? Je sais qu'il y a "strtotime" mais je ne sais pas où le mettre... voici un extrait de mon code, ci-dessous :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// boucle sur le résultat de ta requete ..
while ($ligne = mysql_fetch_assoc($result))
{
// nouvelle ligne dans le tableau
echo "<tr class=normal>";
echo "<td><div align=center>".$ligne['date_reel']."</div></td>";
echo "<td><div align=center>".$ligne['quoi']."</div></td>";
echo "<td><div align=center>".$ligne['où']."</div></td>";
// fin de ligne
echo "</tr>";
}
 
// fin du tableau
echo "</table>";
Merci
chouchouboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h16   #2
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Salut,

est-ce que tu utilises mysql ? Si oui, tu peux faire le formatage dans ta requête:

Code :
1
2
 
select date_format(date_reel, "%d-%m-%Y") as date_reel from xxxx
Il te suffit d'intégrer ca dans ta requête existante, tu n'auras rien à changer à ton script PHP.
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h21   #3
Débutant
 
Inscription : février 2006
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 136
Points : 16
Points : 16
j'ai modifié ma requête mais ça marche pas :
Code :
$req = "SELECT date_format(date_reel, "%d-%m-%Y") as 'date_reel', 'quoi', 'où' FROM calendrier WHERE date_reel >= '$date' ORDER BY date_reel ASC";
chouchouboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h25   #4
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
ca veut dire quoi, "ca ne marche pas" ?
tu as quoi comme sortie maintenant ?
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h27   #5
Débutant
 
Inscription : février 2006
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 136
Points : 16
Points : 16
voilà ce qu'il me répond :
Parse error: syntax error, unexpected '%' in /mnt/124/sdc/b/f/monsite/16_calendrier/16_calendrier.php on line 16
chouchouboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h30   #6
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
ah yes, fallait un peu adapter ce que j'ai dit pour que ca rentre dans ta string, évidemment ...

Code :
1
2
 
$req = "SELECT date_format(date_reel, '%d-%m-%Y') as 'date_reel', 'quoi', 'où' FROM calendrier WHERE date_reel >= '$date' ORDER BY date_reel ASC";
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h33   #7
Débutant
 
Inscription : février 2006
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 136
Points : 16
Points : 16
merci, ça marche nikel !
aussi, tu ne saurais pas comment faire pour ne prendre que les dates de 2006 ???
Dans mon calendrier, j'ai des dates de 2005, de 2006... Je voudrais voir seulement celles de 2006. Comment faire avec date("Y-m-d") ???
merci
chouchouboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h37   #8
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Y'a plusieurs solutions, dont celle là:

Code :
1
2
 
$req = "SELECT date_format(date_reel, '%d-%m-%Y') as 'date_reel', 'quoi', 'où' FROM calendrier WHERE date_reel >= '$date' AND EXTRACT(YEAR FROM date_reel) = "2006" ORDER BY date_reel ASC";
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h38   #9
Débutant
 
Inscription : février 2006
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 136
Points : 16
Points : 16
y'a un autre problème... c'est que quand je les classe par ordre décroissant, ça prend d'abord le jour, après le mois, etc...
je voudrais ça soit classé par année, puis par mois et enfin par jour... possible ?
Merci
chouchouboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h40   #10
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
ok, ca c'est parce qu'on a utilisé le même nom de champ que le champ original pour mettre notre date formatée. Il trie donc suivant notre champ modifié, et plus suivant l'original.

Il faudrait changer le nom alors, et changer également le nom utilisé dans ton script PHP pour l'affichage.

Par exemple:

Code :
1
2
$req = "SELECT date_format(date_reel, '%d-%m-%Y') as 'date_reel_formatted', 'quoi', 'où' FROM calendrier WHERE date_reel >= '$date' AND EXTRACT(YEAR FROM date_reel) = "2006" ORDER BY date_reel ASC";
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h48   #11
Débutant
 
Inscription : février 2006
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 136
Points : 16
Points : 16
excellent !!!! ça fonctionne parfaitement ! Je vous remercie beaucoup !!!
Une dernière chose mais si c'est trop dur, vous me le dites :
je voudrais créer un script qui d'après mes dates de spectacle envoie un mail à mes abonnés (leurs adresses sont dans la base de données) lorsque l'on se trouve à 2 jours du spectacle...
vous comprenez ?? le script d'exécuterait avec webcron...
Merci
chouchouboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h53   #12
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Wow, ca c'est plus complexe que de changer une requête oui ...

Cherche des infos sur les crons, crée-toi un script qui sera exécuté par le cron tous les jours à une heure donnée, récupère les évenements dont la date est à J+2, et qui envoie ensuite le mail. Mais là je peux pas le coder à ta place

Pour le J+2, tu pourras te servir de quelque chose de ce genre:

Code :
1
2
 
SELECT * FROM evenements WHERE date_reel = now() + INTERVAL 2 DAY
plus d'infos ici:
http://dev.mysql.com/doc/refman/4.1/...functions.html
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2006, 22h56   #13
Débutant
 
Inscription : février 2006
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 136
Points : 16
Points : 16
merci quand même !
chouchouboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h35.


 
 
 
 
Partenaires

Hébergement Web