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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : afficher date et heure d'une maj(bdd+php)

par Cyrano » 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 ?

par Jeyz » 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

par Jeyz » 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

par Cyrano » 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.

par Jeyz » 28 oct. 2006, 19:23

je dois reposter un topic pour ça?

re

par Jeyz » 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'];

par Cyrano » 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();"); 

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

par Jeyz » 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.