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

SQL Procédural MySQL Discussion :

formatter datetime php/mysql


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut formatter datetime php/mysql
    bonjour à tous!

    je souhaiterai savoir comment formatter une datetime pour l'enregistrer dans une base mysql je veux dire le code exact. sachant que je saisie dans mon formulaire la date à partir d'un calendrier et l'heure + minutes+second à partir de trois listes deroulantes.
    dans ma base j'ai déclaré le champ date comme datetime.
    ce que je veux avoir c'est de formatter la date et heure que je saisie à partir du formulaire pour avoir un seul champ date qui contient date+heure.

    si quelqu'un a une meilleure proposition à me faire je serai très reconnaissante.
    une petite remarque :la base de donnée gère les appels c 'est pour ça que j'ai declaré date d'appel comme datetime car durant une journee on reçoit plusieurs appels.
    merci de me répondre!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date = $heure.-.$minute.-.seconde
    il faut concatener je sais pas si c'est exactemet comme ca

  3. #3
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date = $heure . "-" . $minute . "-" . $seconde;
    Mais je crois pas que ça soit le bon format.

    je pense plutôt à quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date = $annee . "-" . $mois . "-" . $jour . " " . $heure . ":" . $minute . ":" . $seconde;

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    voui c'est cela le bon format mais comme j'étais pas sur de la réponse me sui arété a la date pas continué dans les heures enfin c bien ca voila

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    merci de ta reponse !!
    la date je l'insère à partir d'un calendrier en format aaaa-mm-jj par conte l'heur à partir de trois liste deroulantes.

    je vais essayé le format que tu m'as donné puis je te dirai le resultat .
    merci!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    le format datetime de mysql est 0000-00-00 00:00:00
    moi j'obtiens le format 0000-00-00 00:00:00 en faisant ça:

    $dat=$_POST["date"];
    $h=$_POST["heure"];
    $m=$_POST["minute"];
    $s=$_POST["second"];
    $heure= $h . ":" . $m . ":" . $s;

    $dat_appel=$dat." ".$heure;

    le prblème d'insertion de la date dans la base persiste toujours!!

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Citation Envoyé par zana74
    le prblème d'insertion de la date dans la base persiste toujours!!
    pour le format on se n'était pas tromper donc et apres c un insert je vois pa ou et le pb

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    l'erreur qui l'affiche est :
    Erreur de syntaxe près de 'mm', 'zz','Française','',3','00','1',2,'2','4')' à la ligne 3

    voila la fonction d'insertion d'un appel:
    function insert_appel($dat_appel,$idqui_appel,$idlieu,$nom,$prenom,$nation,$idstat,$idsituation,$nbrenfant,$idtrancheage,$iddemande,$idpro,$idrep)
    {
    $query = "insert into personne_appelante(dat_appel,idqui_appelle,idlieu,nom,prenom,nationnalite,idstatut,idsituation,nbrenfant,idtrancheage,iddemande,iddemande,idpro,idrep)
    VALUES ('$dat_appel','$idqui_appel','$idlieu,'$nom','$prenom','$nation','$idstat',$idsituation','$nbrenfant','$idtrancheage',$iddemande,'$idpro','$idrep');";

    $result=mysql_query ($query) or die(mysql_error());
    echo"$result";
    if ($result)
    {
    $this->idappel= mysql_insert_id();
    }
    else
    {
    $this->idappel= -1;
    }
    }

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    l'erreur qu'il affiche maintenant est :
    Column count doesn't match value count at row 1

    je n'ai pas compris bien ce message d'erreur

    quellqu'un peut m'aider!!

  10. #10
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Tu as 14 champs dans ton INTO mais que 13 dans ton VALUE.

    Au passage il n'y a qu'un seul N à nationalité.

    Et pour débugguer une requête comme ça le meilleur moyen reste de faire un echo $req;

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    merci j'ai trouvé l'erreur j'ai mis 2 fois un champ dans insert, je pense que je suis fatiguée.

    tu peux me donner ton avis sur ce qui suit:

    pour inserer un appel j'ai crée un formulaire qui contient des requetes sous forme de listes deroulante exemple :
    lieu d'appel qui contient tout les lieus insérés dans la table lieu_appel(idlieu,lieu)
    donc dans la table appel il y idlieu comme clé étrangère qui de type int.
    dans ma liste deroulante j'affiche pas le idlieu j'affiche lieu qui de type varchar. exemple si l'insertion d'un appel je selectione paris comme lieu d'appel comment l'inserer dans la table appel puisque dans cette dernière j'ai id lieu pas lieu.

    j'éspère que tu pourras m'aider

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    dans t aliste déroulante tu peux spécifier ce qui s'affiche et la valeur de chaque choix qui peut etre different de ce qui s'affiche:

    <option value='idlieu'>ce que tu vue afficher donc lieu</option>


    voila voila donc la quand l'utilisateur choisira le lieu tur ecupérera de ton formulaire l'id

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    d'après toi je vais mettre idlieu dans "<option value=idlieu> $nom </option>";
    je ne pense pas que ça va marcher car le idlieu il faut qu'il soit extrait de la table

    voila ma liste déroulante lieu_appel
    à l'origine <tr>
    <TD width="182" height="16">
    <p align="left"><font color="#396BAD">Lieu d'appel :</font></TD>
    <TD width="553" height="16" colspan="3">
    <?php


    // Affiche les resultat d'un requete dans une liste déroulante
    $query="select * from lieu_appel order by lieu_appel;";
    $result=mysql_query($query);
    $nombrelignes = mysql_num_rows($result);

    if ($nombrelignes==0)
    echo"il n'y a pas d'enregistrements";
    else
    {echo "<select name=idlieu style='color: #FFFFFF; border: 1px solid #81A2CB; background-color: #81A2CB'> ";
    for ($i=0;$i<$nombrelignes;$i++) {
    $nom = mysql_result($result,$i,"lieu_appel");
    echo "<option value=$nom> $nom </option>";

    }

    echo "</select>";
    }?>
    </td></tr>
    merci!

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    je te remercie du fond du coeur, je viens de faire ce que tu m'as demandé et ça marche.
    merci mille fois!!
    en ce qui concerne l'orienté objet en php tu sais faire

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    [QUOTE=zana74]je te remercie du fond du coeur, je viens de faire ce que tu m'as demandé et ça marche.
    merci mille fois!!
    en ce qui concerne l'orienté objet en php tu sais faire?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    [QUOTE=zana74]
    Citation Envoyé par zana74
    je te remercie du fond du coeur, je viens de faire ce que tu m'as demandé et ça marche.
    merci mille fois!!
    en ce qui concerne l'héritage en php tu sais faire, j'ai une classe générique publication et des sous classes livre, conference,article, rapport

    j'ai crée les classes mais pas les methodes ajouter, modifier, supprimmer

    * j'ai posté le code dans la rubrique SGBD ce matin

    merci de me répondre!

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 102
    Par défaut
    Salut,

    je ne saurais trop de déconseiller des fonctions "deprecated" du genre mysql_results() qui en plus t'oblige a compliquer ta boucle qui browse le jeu d'enregistrement.
    De plus le html est un peu brouillon de sorte que par exemple tu as une balise <p non fermée inutile de surcroit qui se balade au mileu d'un d'une td.
    Pour le deboggage l'indentation et la propreté du code seront es meilleurs alliés
    Idealement tu pourais faire un select nominatif des champs dont tu as besoin (2 au max) et utilser mysql_fetch_row.
    option la plus économique.

    bref voici un code un peu plus rationnel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <tr>
    	<td width="182" height="16" align="left">
    			<font color="#396BAD">Lieu d'appel :</font>
    	</td>
    	<td width="553" height="16" colspan="3">
    <?php 
    // Affiche les resultat d'un requete dans une liste déroulante 
    $query = "select * from lieu_appel order by lieu_appel;";
    $result = mysql_query($query); 
    if (!mysql_num_rows($result))
    	echo "il n'y a pas d'enregistrements";
    else
    {
    		echo "<select name=idlieu style='color: #FFFFFF; border: 1px solid #81A2CB; background-color: #81A2CB'>\n";
    		while ($data = mysql_fetch_assoc($result)) 
    			echo "<option value=".$data["NOM_DU_CHAMP_ID_DANS_LA_TABLE"].">".$data["lieu_appel"]."</option>\n"; 
    		echo "</select>\n"; 
    }
    ?>
    	</td>
    </tr>

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Par défaut
    merci ! de ta répondre, j'ai résolu le problème

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. pb format datetime avec mysql
    Par ms91fr dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/12/2004, 14h12
  3. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 08h33
  4. [php / mysql] pb if ( mysql_query() )
    Par dkmatt dans le forum Requêtes
    Réponses: 5
    Dernier message: 12/01/2004, 20h07

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