IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Update d'un current_timestamp [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    autan pour moi y a des % devant tous les codes... mais tu aurais pu aller lire la doc...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "select date_format(datMajSerie,'%d/%m/%Y %H:%i:%s') as `datMajSerie` FROM serieDoc WHERE idSerieDoc='" . mysql_real_escape_string($_GET['idSerieDoc']) ." LIMIT 1;'"
    ou
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "select date_format(datMajSerie,'%d/%m/%Y à %H:%i:%s') as `datMajSerie` FROM serieDoc WHERE idSerieDoc='" . mysql_real_escape_string($_GET['idSerieDoc']) ." LIMIT 1;'"

    par contre, faudrait que tu testes en entrée qu'on te fourni bien un format de date/heure compatible avec ce que tu attends, sois en js niveau formulaire soit coté php avant d'extraire tes valeurs...

  2. #22
    Membre confirmé Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Par défaut
    Alors, très grand merci Eric et Fench

    Récapitulons pour ceux qui voudraient afficher un current_timestamp enregistré en BDD au format français :

    Dans la table serieDoc on a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `datMajSerie` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    On a d'abord établi avant même d'entrer dans le html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    // 	---------------------------------------------------------------
    // récupération de l'idSerieDoc avec la variable $_GET[idSerieDoc'] 
    $idSerieDoc = mysql_real_escape_string($_GET['idSerieDoc']);
    // 	---------------------------------------------------------------
    Voici les 3 solutions pour afficher : "Dernière mise à jour le 03-07-2012 à 13:33" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $req = "SELECT idSerieDoc, datMajSerie FROM serieDoc WHERE idSerieDoc=$idSerieDoc";
    $result = mysql_query($req);
    $rows = mysql_fetch_assoc($result);
    $datMajSerie = $rows['datMajSerie'];
    $dateF = substr($datMajSerie, 8, 2).substr($datMajSerie, 4, 4).substr($datMajSerie, 0, 4)." à ".substr($datMajSerie, 11, 5);
     
    echo '<p> Dernière mise à jour le '.$dateF.'</p>';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $req = "SELECT idSerieDoc, datMajSerie FROM serieDoc WHERE idSerieDoc=$idSerieDoc";
    $result = mysql_query($req);
    $rows = mysql_fetch_assoc($result);
    $datMajSerie = $rows['datMajSerie'];
    ($timestamp = strtotime($datMajSerie));
     
    echo '<p> Dernière mise à jour le '.date("d-m-Y à H:i", $timestamp).'</p>';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $req = "select date_format(datMajSerie,'%d-%m-%Y à %H:%i') as `datMajSerie` FROM serieDoc WHERE idSerieDoc=$idSerieDoc";
    $result = mysql_query($req);
    $rows = mysql_fetch_assoc($result);
     
    echo '<p> Dernière mise à jour le '.$rows['datMajSerie'].'</p>';
    Je viens encore d'apprendre beaucoup grâce aux membres de ce forum

  3. #23
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    un truc...

    quand tu as du post ou du get toujours tester que tu as bien un truc dedans

    tu peux écrire un truc élégant avec l'opérateur "?" qui permet d'écrire en inline
    pour du texte:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    $machin=(!empty($_POST['truc'])?$_POST['truc']:'valeur à définir ici_si_vide');
    pour des entiers:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    $machin=(!empty($_POST['truc'])?intval($_POST['truc']):0);
    ça évite une erreur undefined index si une des valeur n'est pas transmise

    le intval oblige à la présence d'un nombre, si aucun n'est fourni il renvoie 0, ce qui empêche les injections d'autre chose que des entiers...

    quand tu as du texte formaté alors utilise une regexp pour tester la validité du format et/ou extraire les données... c'est moins rigide que les substr...
    ou mieux une fonction de conversion adaptée qui sera toujours plus rapide et sure...


  4. #24
    Membre confirmé Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Par défaut
    euh... j'ai pas dû tout comprendre parce que si je remplace mon GET tel que ci-dessus par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    // récupération de l'idSerieDoc avec la variable $_GET[idSerieDoc'] 
    $idSerieDoc = mysql_real_escape_string(empty($_GET['idSerieDoc'])?intval($_GET['idSerieDoc']):0);
    ça n'affiche plus que le html, plus aucune info sur la série.

  5. #25
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    oups j'ai oublié "!" devant empty... corrigé dans le message initial aussi
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $idSerieDoc = mysql_real_escape_string(!empty($_GET['idSerieDoc'])?intval($_GET['idSerieDoc']):0);

    la syntaxe c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (condition?code_si_vrai:code_si_faux)
    inline signifie qu'est pas tout à fait comme un if car là tu utilises ça plutôt dans une affectation... à savoir que tu peux les enchainer les uns à l'intérieur des autres...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (condition?(condition1?code_si_condition1_vrai:code_si_condition1_faux):code_si_condition_faux)

  6. #26
    Membre confirmé Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Par défaut
    En effet, ça marche comme ça, merci Eric !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. on update current_timestamp ?
    Par tintinux dans le forum Débuter
    Réponses: 4
    Dernier message: 15/02/2011, 20h38
  2. ON UPDATE CURRENT_TIMESTAMP
    Par Ptit_bouchon dans le forum Administration
    Réponses: 3
    Dernier message: 03/12/2008, 23h15
  3. default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    Par camyo dans le forum Installation
    Réponses: 11
    Dernier message: 27/03/2006, 16h33
  4. Réponses: 3
    Dernier message: 10/11/2002, 11h03
  5. update et virgule
    Par Delph dans le forum Bases de données
    Réponses: 8
    Dernier message: 27/08/2002, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo