[RESOLU] php date de naissance

aide
Invité n'ayant pas de compte PHPfrance

06 avr. 2014, 20:28

bonjour
je suis en train de créer un formulaire où je demande la date de naissance, que dois je écrire comme code pour que quand la personne inscrit sa date de naissance cela rentre dans ma base de donnée phpmyadmin que j'ai crée? (et que cela soit date valide aussi)

Merci
Bonne soirée

Eléphant du PHP | 233 Messages

06 avr. 2014, 21:07

Salut

tu peux faire ceci avant d'insérer la date dans ta base :
<?php

if(isset($_POST['annee']) && isset($_POST['mois']) && isset($_POST['jour'])
&& checkdate($_POST['mois'], $_POST['jour'], $_POST['annee'])) {
$date_naissance = $_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour']; ?>

Puis l'insertion dans ta base :
<?php

mysql_query('INSERT INTO xxxx (date_naissance et autres...) VALUES ( "'.$date_naissance.'"'); ?>

et le formulaire :
 <label for="date_naissance">Date d'anniversaire : </label>
  <select name="jour">
  <option value="0">Jour</option>
    <?php
      for ($i = 1; $i <= 31; $i++)
      {
        echo '<option value="' . $i . '">' . $i . '</option>';
      }
    ?>
</select>
 
 <select name="mois" size="1">
<option value="01">Janvier</option><option value="02">Février</option><option value="03">Mars</option><option value="04">Avril</option><option value="05">Mai</option><option value="06">Juin</option><option value="07">Juillet</option><option value="08">Août</option><option value="09">Septembre</option><option value="10">Octobre</option><option value="11">Novembre</option><option value="12">Décembre</option></select>
 
<select name="annee">
  <option value="0">Année</option>
    <?php
      for ($i = 2014; $i >= 1930; $i--)
      {
        echo '<option value="' . $i . '">' . $i . '</option>';
      }
    ?>
</select>

aide
Invité n'ayant pas de compte PHPfrance

07 avr. 2014, 00:05

bonsoir,
merci pour votre réponse.
J'ai crée une nouvelle vdd juste pour la date de naissance pour tester
et j'ai créer un ficher php ou j'ai copié votre code

<form name="date" action="no.php" method="POST">
          		
 <label for="date_naissance">Date d'anniversaire : </label>
  <select name="jour">
  <option value="0">Jour</option>
    <?php
      for ($i = 1; $i <= 31; $i++)
      {
        echo '<option value="' . $i . '">' . $i . '</option>';
      }
    ?>
</select>
 
 <select name="mois" size="1">
<option value="01">Janvier</option><option value="02">Février</option><option value="03">Mars</option><option value="04">Avril</option><option value="05">Mai</option><option value="06">Juin</option><option value="07">Juillet</option><option value="08">Août</option><option value="09">Septembre</option><option value="10">Octobre</option><option value="11">Novembre</option><option value="12">Décembre</option></select>
 
<select name="annee">
  <option value="0">Année</option>
    <?php
      for ($i = 2014; $i >= 1930; $i--)
      {
        echo '<option value="' . $i . '">' . $i . '</option>';
      }
    ?>
    
    
    <input type="submit" value="inscrit" name="submit">
</select>


<?php
$connect=mysql_connect('localhost','root','root') or die ('Error');
mysql_select_db('NO');
$query=mysql_query("INSERT INTO NO VALUES ('.$date_naissance.')"); ?>
j'ai bien tout qui s'affiche, quand je vais sur le dossier php que je met une date au hasard sur ma bdd cela me donne toujours

date
0000-00-00


et je n'ai pas compris ce code
Code php
<?php

if(isset($_POST['annee']) && isset($_POST['mois']) && isset($_POST['jour'])
&& checkdate($_POST['mois'], $_POST['jour'], $_POST['annee'])) {
$date_naissance = $_POST['annee'].'-'.$_POST['mois'].'-'.$_POST['jour']; ?>
en tout cas quand je colle sur le reste cela me met une page blanche

Mammouth du PHP | 2278 Messages

07 avr. 2014, 09:13

Il existe :
<input type = 'date' /> qui fonctionne :
http://www.alsacreations.com/tuto/lire/ ... local.html
ou mettre un datepicker http://jqueryui.com/datepicker/
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 233 Messages

07 avr. 2014, 10:11

oui pour l'insérer dans la base il faut déjà que le champ date_naissance soit de type date.

Puis pour l'affichage il faut faire :

<?php echo  date("d/m/Y", strtotime($donnees['date_naissance'])); ?>