afficher date et heure d'une maj(bdd+php)

Eléphanteau du PHP | 40 Messages

28 oct. 2006, 17:53

Bonjour (ou bonsoir)

Bon voilà je voudrais tout juste afficher la date de mise à jour d'une page sur cette dite page.

Je précise que je suis un débutant.

Donc j'ai créé un champ "maj" dans ma table, au format DATETIME notnull et défaut "0000-00-00 00:00:00".

Voilà, bon maintenant je cherche partout ce que j'dois mettre dans mon script de mise à jour de la table (et donc du dit champ "maj").

J'ai donc un formulaire(form) ou je met à jour mes données puis y'à un script qui vérifie deux trois trucs et là j'voudrais juste savoir ce qui faut mettre précisément pour UPDATE le champ "maj" a l'heure + date du moment ou à été faitela mise à jour.

Bon je pense que ça doit etre un truc du genre
$sql = mysql_query("UPDATE maj SET ....

Mais apres je vois pas du tout...

Merci de votre aide.

Mammouth du PHP | 19672 Messages

28 oct. 2006, 18:00

Pour mettre l'instant correspondant au moment de la mise à jour, fais :
$sql = mysql_query("UPDATE nom-de-la-table SET `maj` = NOW();"); 
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 40 Messages

28 oct. 2006, 18:28

ok ça roule merci bcp.

Mtnt quand j'affiche la dite date et heure.

Ca me la met telle qu'elle est formatée dans la bdd (année/mois/jour Heure/Minute/seconde)

Comment je fais poru la remettre à ma sauce sur ma page?

j'ai que ça pour l'instant.
echo $data['maj'];

Eléphanteau du PHP | 40 Messages

28 oct. 2006, 19:23

je dois reposter un topic pour ça?

Mammouth du PHP | 19672 Messages

28 oct. 2006, 19:43

Non, pas la peine de reposter ailleurs.

Tu peux le faire directement dans ta requête en utilisant une fonciton SQL : DATE_FORMAT(nom-du-champ, 'format'). Par exemple, si dans ton champ tu as la valeur "2006-10-11 12:03:41", la requête suivante :

Code : Tout sélectionner

SELECT SELECT DATE_FORMAT(`nom-du-champ`, '%d-%m-%Y %Hh%i\'%s"') FROM nom-de-la-table;
Affichage de sortie :

Code : Tout sélectionner

+----------------------+ | dateheure | +----------------------+ | 11-10-2006 12h03'41" | +----------------------+
Voir la doc pour chaque caractère spécifique à utiliser.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 40 Messages

28 oct. 2006, 21:12

Re
Merci pour la réponse mais quand je met ça :

$sql = 'SELECT * FROM tbl_tarifs WHERE hotel="portjacquet"';
$sql = 'SELECT SELECT DATE_FORMAT(`maj`, '%d-%m-%Y %Hh%i\'%s'') FROM tbl_tarifs';

Mon navigateur me retourne une erreur à la ligne en question.

(pendant que j'y suis, c'est possible avec DATETIME de passer le mois qui est en chiffres en lettres(ex janvier au lieu de 01)

Merci

Eléphanteau du PHP | 40 Messages

28 oct. 2006, 21:27

bon c'est ok çamarche, t'avais juste rajouté un guillemet dans la requete en fait, mais merci bcp quand meme ;^p

Mammouth du PHP | 19672 Messages

28 oct. 2006, 22:58

Pour le guillemet symbolisant les secondes, si ta requête est dans une chaine de caractère PHP encadrées de guillemets, alors échappe-le :
$sql = "SELECT DATE_FORMAT(`maj`, '%d-%m-%Y %Hh%i\'%s\"') FROM tbl_tarifs"; 
on échappe l'apostrophe pour le SQL et on échappe le guillemet pour PHP. Ça peut être perturbant, mais il faut faire attentions à ces détails quand on mélange les langages en procédant par ordre de priorité.
Dans la requête SQL, on est en langage SQL : le format qu'on indique en paramètre de la fonction DATE_FORMAT() est pour le SQL une chaîne de caractères.

Reprenons à la base la requête en SQL pur :

Code : Tout sélectionner

SELECT DATE_FORMAT(`maj`, '%d-%m-%Y %Hh%i\'%s"') FROM tbl_tarifs
Si je colle ça en ligne de commande directement vers MySQL, pas besoin d'échapper le guillemet. Par contre, comme le format est une chaine de caractères encadrée d'apostrophes, l'apostrophe symbolisant les minutes ne foit pas être interprétée par MySQL mais lue telle quelle, il faut donc l'échapper.

Si ensuite je reprends cette requête pour l'intégrer dans du PHP, elle est alors traitée comme une chaine de caractères. il faut donc faire attention parce que là, on est en PHP : la chaîne est encadrées de guillemets, donc si la chaîne elle même contient aussi des guillemets, il ne faut pas qu'ils soient interprétés mais lus tels quels, il faut alors les échapper.

Est-ce que tu saisis mieux ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: