A voir également:
- Date naissance sur sql
- Journal de ma naissance gratuit à imprimer - Télécharger - Histoire & Religion
- Comment changer sa date de naissance sur tiktok - Guide
- Comment changer sa date de naissance sur snap - Forum Snapchat
- J’ai changer trop de fois ma date de naissance snapchat comment la changer? - Forum Snapchat
4 réponses
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
21 mai 2019 à 21:21
21 mai 2019 à 21:21
Bonjour,
...Pour stocker une date de naissance, ce n'est pas un type "datetime" que tu dois utiliser dans ta bdd.. mais juste "date"
Pour l'insertion d'une date dans la BDD il faut qu'elle soit au format "Annee-Mois-Jours"
Mais sans voir ton code PHP complet.... impossible de t'aider d'avantage.
Je t'invite tout de même avant de nous montrer ton code... de lire (et d'appliquer... ) TOUT ce qui est indiqué ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ensuite, montre nous ton code modifié si les soucis persistent.
...Pour stocker une date de naissance, ce n'est pas un type "datetime" que tu dois utiliser dans ta bdd.. mais juste "date"
Pour l'insertion d'une date dans la BDD il faut qu'elle soit au format "Annee-Mois-Jours"
Mais sans voir ton code PHP complet.... impossible de t'aider d'avantage.
Je t'invite tout de même avant de nous montrer ton code... de lire (et d'appliquer... ) TOUT ce qui est indiqué ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ensuite, montre nous ton code modifié si les soucis persistent.
jute une question pour le mois j'affiche
là dans mon selec il s'affiche bien les mois janvier fevrier etc...
j'ai mis $NumMois = array_search ($_POST['mois'], $arrMois) + 1;
coment je doit mettre le numero du mois afin qu'il puisse rentrer dans ma base sql
janvier = 01
fevrier = 02
etc...
<?php setlocale(LC_TIME, 'fr_FR', 'fra', 'french'); $tab_mois = array('janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'decembre'); $NumMois = array_search ($_POST['mois'], $arrMois) + 1; $options = ''; foreach($tab_mois as $mois) { $options .= '<li class="select-choix" value="'.$mois.'">'.$mois.'</li>'; } $options = str_replace('value="'.rtrim(strtoupper(strftime('%b')), '.').'"', 'value="'.rtrim(strtoupper(strftime('%b')), '.').'" selected="selected"', $options); ?>
là dans mon selec il s'affiche bien les mois janvier fevrier etc...
j'ai mis $NumMois = array_search ($_POST['mois'], $arrMois) + 1;
coment je doit mettre le numero du mois afin qu'il puisse rentrer dans ma base sql
janvier = 01
fevrier = 02
etc...
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
22 mai 2019 à 15:48
22 mai 2019 à 15:48
foreach($tab_mois as $num=>$mois) { $options .= '<li class="select-choix" value="'. $num +1 .'">'.$mois.'</li>';
benjamin
>
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
23 mai 2019 à 11:12
23 mai 2019 à 11:12
merci, il met cette erreur
merci
Warning: A non-numeric value encountered in
<?php setlocale(LC_TIME, 'fr_FR', 'fra', 'french'); $tab_mois = array('janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'decembre'); // $NumMois = array_search ($_POST['mois'], $arrMois) + 1; $options = ''; foreach($tab_mois as $num=>$mois) { $options .= '<li class="select-choix" value="'. $num +1 .'">'.$mois.'</li>'; } $options = str_replace('value="'.rtrim(strtoupper(strftime('%b')), '.').'"', 'value="'.rtrim(strtoupper(strftime('%b')), '.').'" selected="selected"', $options); ?>
merci
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
>
benjamin
23 mai 2019 à 12:17
23 mai 2019 à 12:17
message d'erreur COMPLET ? (donc avec le NUMERO de ligne concerné par l'erreur ) qui correspond à quelle ligne de code dans ce que tu nous montres ?
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 mars 2025
4 741
>
benjamin
23 mai 2019 à 15:28
23 mai 2019 à 15:28
On ne va pas s'en sortir si tu ne nous montres pas ton code complet....
car on ne sais pas à quoi correspondent tes différentes valeurs
car on ne sais pas à quoi correspondent tes différentes valeurs
voilà
actuellement, je met ca
là ca m'enregistre bien cette date 1972-01-01 dans sql
si je met ce code afin de récupère les 3 valu jours mois et année
mais comme j'affiche les mois en lettre , il ne comprends pas
c'est juste qu'il faut lui dire que le mois de janvier =01 fevrier = 02 etc...
afin de rentrer une date come celà 1972-01-01 sur la base sql
et comme ca dans le profil, j'affichera sur la date normal
01 janvier 1972
je verrais ca après avoir resolu cette date de naissance lors de son inscription
<div id="select-inscription-jours-1" class="choix" data-name="inscription"> <input id="jours" name="jours" type="hidden" value="" /> <span id="select-inscription-jours-2" class="hida1 icon-select">jours</span> <ul id="select-inscription-jours-3" class="mutliSelect1"> <?php $jour = date('j'); for ($i = 1; $i <= 31; $i++) { $j = $i < 10 ? '0' . $i : $i; $current = ($i == $jour) ? ' selected="selected"' : ''; echo "<li class=\"select-choix\" value=\"{$j}\"{$current}>{$j}</li>\n"; } ?> </ul></div> <?php setlocale(LC_TIME, 'fr_FR', 'fra', 'french'); $tab_mois = array('janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'decembre'); $NumMois = array_search ($_POST['mois'], $arrMois) + 1; $options = ''; foreach($tab_mois as $num=>$mois) { $options .= '<li class="select-choix" value="'. $num +1 .'">'.$mois.'</li>'; } $options = str_replace('value="'.rtrim(strtoupper(strftime('%b')), '.').'"', 'value="'.rtrim(strtoupper(strftime('%b')), '.').'" selected="selected"', $options); ?> <div id="select-inscription-mois-1" class="choix" data-name="inscription"> <input id="mois" name="mois" type="hidden" value="" /> <span id="select-inscription-mois-2" class="hida1 icon-select">mois</span> <ul id="select-inscription-mois-3" class="mutliSelect1"> <?php echo $options; ?> </ul></div> <div id="select-inscription-annee-1" class="choix" data-name="inscription"> <input id="annee" name="annee" type="hidden" value="" /> <span id="select-inscription-annee-2" class="hida1 icon-select">année</span> <ul id="select-inscription-annee-3" class="mutliSelect1"> <?php $annee = date("Y"); $anneeDebut = 1919; $anneeFin = date("Y"); for($i=$anneeDebut ;$i<=$anneeFin ;$i++) { echo("<li class=\"select-choix\" value=\"$i\""); if ($i == $annee) echo(" selected=\"selected\""); echo(">$i</li>"); } ?> </ul></div>
actuellement, je met ca
$query->bindValue(':datenaissance', '1972-01-01', PDO::PARAM_STR);
là ca m'enregistre bien cette date 1972-01-01 dans sql
si je met ce code afin de récupère les 3 valu jours mois et année
$query->bindValue(':datenaissance', $datenaissance, PDO::PARAM_STR);
mais comme j'affiche les mois en lettre , il ne comprends pas
c'est juste qu'il faut lui dire que le mois de janvier =01 fevrier = 02 etc...
afin de rentrer une date come celà 1972-01-01 sur la base sql
et comme ca dans le profil, j'affichera sur la date normal
01 janvier 1972
je verrais ca après avoir resolu cette date de naissance lors de son inscription
j'ai tenter de mettre data name ou role mais ca ne fonctionne pas toujours erreur
<li class="select-choix" data-role="'. $num +1 .'">'.$mois.'</li>
<li class="select-choix" data-role="'. $num +1 .'">'.$mois.'</li>
Si vous voulez une date en JavaScript le plus simple est d'utiliser l'objet date, par exemple:
Ensuite sur la base tout dépends du format indiqué. En général un Timestamp plus simple à utiliser car on fait facilement des opérations en base 10 plut^tot qu'en base 60 ou 24(idem pour comparer deux dates et obtenir la plus ancienne/récente).
Mais bon on fait aussi comme on veut, sans Timestamp on a pas à convertir la date pour l'afficher(ce que tout les langages savent faire en une seule instruction).
Pour votre formulaire il suffit d'indiquer l'attribut value dans le select option comme ceci:
let ddj= new Date('05/24/2019');//-- ici le format américain jour et mois inversé par rapport à nous alert(ddj+' ou en timestamp UNIX: '+ddj.getTime());
Ensuite sur la base tout dépends du format indiqué. En général un Timestamp plus simple à utiliser car on fait facilement des opérations en base 10 plut^tot qu'en base 60 ou 24(idem pour comparer deux dates et obtenir la plus ancienne/récente).
Mais bon on fait aussi comme on veut, sans Timestamp on a pas à convertir la date pour l'afficher(ce que tout les langages savent faire en une seule instruction).
Pour votre formulaire il suffit d'indiquer l'attribut value dans le select option comme ceci:
<select name='moisnaiss'> <option value='1'>janvier</option> <option value='2'>février</option> <!-- etc...//--> </select>
Voire:
$tab_mois = array('janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'decembre'); let selectMois= document.createElement('select'); for (let i=0;i<$tab_mois.length; i++){ let tmp = document.createElement('option'); tmp.innerHTML=$tab_mois[i]; tmp.value=i+1;// -- compte de 1 à 12 au lieu de 0 à 11) selectMois.appendChild(tmp); } // il ne reste qu'à ajouter le select (et son contenu d'options) dans le formulaire sur la page //-- et bien sûr récupérer la valeur value et non la valeur $('select').html() ou .text() qui correspond à innerHTML
21 mai 2019 à 22:32