Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/11/2011, 14h23   #1
Invité de passage
 
Homme Thierry
Intégrateur Web
Inscription : novembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2011
Messages : 7
Points : 1
Points : 1
Par défaut Inserer une date dans une base

Bonjour,
Après de nombreuses recherche sur divers forums je me suis résolu à poster car je ne trouve pas de solution à mon problème ; je poste ici bien que c'est peut être un problème de php !!

J'ai un formulaire "classique" où des données (une inscription en fait) vont alimenter une base, tout est ok.

sauf pour la date de naissance où là j'ai 3 champs (naissanceC, naissanceB, naissanceA) correspondant respectivement à année - jour - mois dans mon formulaire et un champ dans ma base qui se nomme "naissance" de format "date" (0000-00-00)

Voila une partie du code de ma page :

Code PHP :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
if($_POST) { 
 
 
$naissance=secure_mysql($_POST['naissanceC']."-".$_POST['naissanceB']."-".$_POST['naissanceA']);
 
 
mysql_query("INSERT INTO me_utilisateur ( naissance) VALUES ('”.$naissanceC.”-“.$naissanceB.”-“.$naissanceA.”')
 
 
-----------------------
 
##le formulaire
 
 
 
td><select id="naissanceA" autocomplete="off" name="naissanceA"> 
<?php 
echo("\t\t\t\t\t<option value=\"\">Jour :</option>\n"); 
for($i=1 ; $i < 32 ; $i++) 
{ 
echo("\t\t\t\t\t<option value=\"$i\">$i</option>\n"); 
} 
?> 
</select> 
<select id="naissanceB" autocomplete="off" name="naissanceB"> 
<?php 
echo("\t\t\t\t\t<option value=\"\">Mois :</option>\n"); 
for($i=1 ; $i < 13 ; $i++) 
{ 
echo("\t\t\t\t\t<option value=\"$i\">$i</option>\n"); 
} 
?> 
</select> 
<select id="naissanceC" autocomplete="off" name="naissanceC"> 
<?php 
echo("\t\t\t\t\t<option value=\"\">Année :</option>\n"); 
for($i=1993 ; $i > 1950 ; $i--) 
{ 
echo("\t\t\t\t\t<option value=\"$i\">$i</option>\n"); 
} 
?> 
</select>  
</td>

Est ce que c'est clair ? voyez vous d'où peut venir le soucis ?
Merci d'avance
Th300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 16h56   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Peut être que tes variables ne sont pas valorisées ?
En tout cas, puisque tu formates la date de naissance en PHP, inutile d'envoyer à la requête les trois morceaux de date !

Et j'écrirais ton code plutôt comme ça :
Code PHTML :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
if($_POST) 
{ 
	$naissance = secure_mysql($_POST['naissanceC'].'-'.$_POST['naissanceB'].'-'.$_POST['naissanceA']);
 
	$sql = "
		INSERT INTO me_utilisateur (naissance) 
		VALUES ('”.$naissance.”')
	";
	mysql_query($sql);
	// echo '<br />Requête : <br />'.$sql;
	// exit;
 
// Encore du code je suppose ?
}
?>
-----------------------
 
<!-- le formulaire -->
 
<td>
	<select id="naissanceA" autocomplete="off" name="naissanceA"> 
		<option value="">Jour :</option>
<?php
for($i=1 ; $i < 32 ; $i++) 
{ 
?>
		<option value="<?php echo $i; ?>"><?php echo $i; ></option> 
<?php
} 
?> 
	</select> 
 
<!-- etc. -->
Ça me semble plus clair. Pour la coloration syntaxique aussi, dans les bons éditeurs.

À noter qu'avec ton formulaire et la date séparée en trois champs, je peux saisir le 31/02/2011 !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/11/2011, 18h17   #3
Invité de passage
 
Homme Thierry
Intégrateur Web
Inscription : novembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2011
Messages : 7
Points : 1
Points : 1
Merci Cinéphile, effectivement tu as raison, cela fonctionne ainsi :

Code :
$date_naissance = $_POST[naissanceC].'-'.$_POST[naissanceB].'-'.$_POST[naissanceA];
avec dans Values



ah oui mince je n'avais pas pensé à cet aspect là : le 31/02, il me semble que j'étais tombé sur des post qui traité du sujet.
Th300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h46.


 
 
 
 
Partenaires

Hébergement Web