Format date en PHP/MySQL

Résolu
supupoff Messages postés 350 Statut Membre -  
supupoff Messages postés 350 Statut Membre -
Bonjour,

Bonjour,

aide svp
Erreur ://

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Y-M-D', strtotime(8/8/1985))', cin='98798789787', section='Infor' at line 9


SQL ::

 $requete = "INSERT INTO candidature SET
                nom='$_POST[Nom]',
                prenom='$_POST[Prenom]',
				tel='$_POST[Tel]',
				certificat ='$_POST[Certificat]',
				typecertficat='$_POST[type]',
				annee='$_POST[annee]',
				date='$_POST[date]',
				naissance= ' date('Y-M-D', strtotime($_POST[naissance]))',
			    cin='$_POST[cin]',
			    section='$_POST[section]',
				etat='Non',
			    commentaire='$_POST[commentaire]'";


merci d'avance ;))

2 réponses

  1. Autumn`Tears Messages postés 1247 Statut Membre 145
     
    Salut,

    Essaie avec date('Y-m-d', strtotime($_POST[naissance]))
    0
    1. supupoff Messages postés 350 Statut Membre 34
       
      rien mm erreur

      merci
      0
  2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Salut,

    La fonction PHP strtotime() ne "comprend" que les dates au format anglais.
    DD/MM/YY n'est pas un format anglais (mais MM/DD/YY oui).
    Ici, tu utilises « 8 » pour le jour et le mois, donc il n'y a aucun problème de ce côté, mais je tenais à en faire la remarque car tes visiteurs, francophones, utiliserons le format DD/MM/YY ce qui provoquera quelque soucis.

    La fonction strtotime() n'est pas exéctuée avant d'être envoyée à MySQL car tu n'utilises pas la concaténation.
    En MySQL, il existe la fonction STR_TO_DATE mais pas strtotime.

    Sans oublier qu'un problème se pose avec les apostrophes :
     $requete = "INSERT INTO candidature SET
                    nom='$_POST[Nom]',
                    prenom='$_POST[Prenom]',
    		tel='$_POST[Tel]',
    		certificat ='$_POST[Certificat]',
    		typecertficat='$_POST[type]',
    		annee='$_POST[annee]',
    		date='$_POST[date]',
    		naissance= ' date('Y-M-D', strtotime($_POST[naissance]))',
     		 cin='$_POST[cin]',
    0
    1. supupoff Messages postés 350 Statut Membre 34
       
      Merci :))
      j'ai essayé de change mes step :))

      ben j'ai crée fct
      function convertirDate($sDateUs)
      {
      return strftime('%Y/%m/%d ', strtotime($sDateUs));
      }

      ...
      naissance= 'convertirDate($_POST[naissance]));',

      pas d'erreur mais l'insertion reste 0000:00:00

      merci
      0
    2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      naissance= 'convertirDate($_POST[naissance]));', 

      Il manque le signe $.
      Les variables/fonctions ne sont pas interprétées entre guillemets.
      0
    3. supupoff Messages postés 350 Statut Membre 34
       
      j'ai pas saisi :)) vous pouvez expliqué svp :! merci
      0
    4. Autumn`Tears Messages postés 1247 Statut Membre 145
       
      $naissance = convertirDate($_POST['naissance']);
      0
    5. supupoff Messages postés 350 Statut Membre 34
       
      thanks mercii bcp c resolu

      ben pr ceux ki on mm prbl ( peut -etre un jrs)
      c comme sa

      function convertirDate($sDateUs)
      {
      return strftime('%Y/%m/%d ', strtotime($sDateUs));
      }
      $naissance = convertirDate($_POST['naissance']);

      $requete = "INSERT INTO candidature SET
      ............
      naissance= '$naissance',
      ..............................


      Merci bcp Autumn et avion-f16

      ----10ks
      0