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

PHP & Base de données Discussion :

Gestion de date de naissance dans un profil [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Gestion de date de naissance dans un profil
    Bonjour tout le monde,

    1) Mon problème correspond à la gestion de date :
    Voila, j'ai le code suivant dans ma vue correspondant au client(à la création d'un client donc lorsqu'il s'inscrit) :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <tr>
    			<td>Date de naissance</td>
    			<!-- 'type="text" permet le champ de saisit correspondant a la date de naissance du client lors de sa création -->
    			<td><select name="jours">
    					<?php
    						$i = 1;
    						while($i <= 31)
    						{
    							echo '<option value="'. $i .'">'. $i .'</option>'."\n";
    							$i++;
    						}
    					?>
    				</select>
    				<select name="mois">
    					<?php
    						$i = 1;
    						while($i <= 12)
    						{
    							echo '<option value="'. $i .'">'. $i .'</option>'."\n";
    							$i++;
    						}
    					?>
    				</select>
    				<select name="années">
    					<?php
    						$i = 1940;
    						while($i <= date('Y')) 
    						{
    							echo '<option value="'. $i .'">'. $i .'</option>'."\n";
    							$i++;
    						}
    					?>
    				</select>
    			</td>
    		</tr>
    Je voudrait avoir votre avis : dois-je forcément gérer le nombre de jour par rapport au mois (Exemple : les 29 jours au maximum dans le mois de 'Février' et non 31 où 30 comme tout les autres mois...) Qu'en pensez-vous alors??


    2) Mon problème correspond à l'enregistrement de la date choisit via la vue ci-dessus qui est divisé en 3 : Jours, mois, années.(voir problème 1)J'ai une MySql qui comporte une table 'Client' donc il y a un champ 'DATEDENAISSANCE' de type 'Date'. J'aimerais savoir comment je peux faire pour enregistrer les renseignements de la date (Jours, mois, années) dans un seul champ??
    Voici le code qui me permet l'enregistrement des autres informations pour le moment :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    // Code du controles permettant l'enregistrement des informations du client dans ma base de données
    <?php
    
    	require_once("../connexion.php"); 				// Inclue le fichier correspondant à la connexion
    	require_once("../Classes/class_client.php"); 	// Inclue le fichier correspondant à la classe client
    	require_once("../DAO/client_DAO.php");			// Inclue le fichier correspondant à la DAOclient
    	session_start(); 								// Démarrage de la session
    	
    	$titre=$_POST['titre'];				// Insére le titre via la méthode POST
    	$nom=$_POST['nom'];					// Insére le nom via la méthode POST
    	$prenom=$_POST['prenom'];			// Insére le prénom via la méthode POST	
    	$jours=$_POST['jours'];
    	$mois=$_POST['mois'];
    	$années=$_POST['années'];		
    	$mail=$_POST['mail'];				// Insére le mail via la méthode POST
    	$motPasse=$_POST['motPasse'];		// Insére le mot de passe via la méthode POST
    	$adresse=$_POST['adresse'];			// Insére l'adresse via la méthode POST
    	$code_postal=$_POST['code_postal'];	// Insére le code postal via la méthode POST
    	$ville=$_POST['ville'];				// Insére la ville via la méthode POST
    	
    	// Si les renseignements du clients sont vides alors un message nous informe de remplir tout les champs
    	if (($nom=="")&&($prenom=="")&&($jours=="")&&($mois=="")&&($années=="")&&($mail=="")&&($motPasse=="")&&($adresse=="")&&($code_postal=="")&&($ville==""))
    	{
    ?>
    
    <!-- Javascript permettant l'affichage du message d'alert -->
    <script language="JavaScript">
    	alert('Veuillez remplir tous les champs');
    </script>
    
    <?php
    	require("../Vue/V_client.php");	// Require permet d'exécuter la vue suivante : "vue du client"
    	}
    	else
    	{
    		$dateNais=$années."-".$mois."-".$jours;
    		// Instance de client_DAO permettant de récupérer les renseignements correspondant au client
    		$MonClt=new client_DAO($titre,$nom,$prenom,$dateNaiss,$mail,$motPasse,$adresse,$code_postal,$ville);
    		// Appel de la fonction 'Sauvegarder_UnClient' via la variable "MonClt"
    		$MonClt->Sauvegarder_UnClient();
    		// setcookie permet d'envoyer un cookie
    		// mktime permet de retourner le temps d'une date
    		setcookie("moto_28", $MonClt->get_IdClient(),mktime(0, 0, 0, 12, 12, 2008),"/");
    
    ?>
    
    		<!-- Javascript permettant d'effectuer l'action 'panier' -->
    		<script language="JavaScript">
    			document.location.href='../index.php?action=panier';
    		</script> 
    		
    <?php
    	}
    ?>
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    // Code de la méthode 'Sauvegarder_UnClient' qui se situe dans ma classe d'accées aux donnée (DAO_Client).
    public function Sauvegarder_UnClient()
    	{
    		if ($this->get_IdClient()!=-1){
    			$req="UPDATE client SET";
    			$req=$req." TITRE='".$this->get_titre()."',";
    			$req=$req." NOM='".$this->get_nom()."',";
    			$req=$req." PRENOM='".$this->get_prenom()."',";
    			$req=$req."DATEDENAISSANCE='".$this->get_DateNaissance()."' ,'";
    			$req=$req." MAIL='".$this->get_mail()."',";
    			$req=$req." MOTPASSE='".$this->get_motPasse()."',";
    			$req=$req." ADRESSE='".$this->get_adresse()."',";
    			$req=$req." CODE_POSTAL='".$this->get_code_postal()."',";
    			$req=$req." VILLE='".$this->get_ville()."'";
    			$req=$req." WHERE IDClient=".$this->get_IdClient();
    			$res = mysql_query($req);
    		}
    		else
    		{
    			//on recupere le nombre de client
    			$req="select count(*) as nombre from client";
    			//echo $req;
    			$res = mysql_query($req);
    			$row = mysql_fetch_array($res);
    
    			//on fait plus 1
    			$this->set_IdClient($row["nombre"]+1);
    			
    			$req="INSERT INTO client(IDClient, TITRE, NOM, PRENOM, DATEDENAISSANCE, MAIL, MOTPASSE, ADRESSE, CODE_POSTAL, VILLE) VALUES (".$this->get_IdClient().",'".$this->get_titre()."','".$this->get_nom()."','".$this->get_prenom()."','".$this->get_DateNaissance()."','".$this->get_mail()."','".$this->get_motPasse()."','".$this->get_adresse()."','".$this->get_code_postal()."','".$this->get_ville()."')";
    			$res = mysql_query($req);
    			
    		}
    	}
    Merci d'avance pour votre aide!!
    __________________

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    1 - Tu as la fonction checkdate() pour valider que le jour saisie est bon
    2 - INSERT INTO table (DATEDENAISSANCE) VALUES ($annee . '-' . $mois . '-' $jour)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à sabotage
    1) merci pour cette information, je ne connaissait pas cette fonction. Mais ou me conseillerais tu de la mettre dans les codes suivant :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    // Code de la vue qui me permet de choisir le jour, le mois, l'année de ma date de naissance.
    <tr>
    			<td>Date de naissance</td>
    			<!-- 'type="text" permet le champ de saisit correspondant a la date de naissance du client lors de sa création -->
    			<td><select name="jours">
    					<?php
    						$i = 1;
    						while($i <= 31)
    						{
    							echo '<option value="'. $i .'">'. $i .'</option>'."\n";
    							$i++;
    						}
    					?>
    				</select>
    				<select name="mois">
    					<?php
    						$i = 1;
    						while($i <= 12)
    						{
    							echo '<option value="'. $i .'">'. $i .'</option>'."\n";
    							$i++;
    						}
    					?>
    				</select>
    				<select name="années">
    					<?php
    						$i = 1940;
    						while($i <= date('Y')) 
    						{
    							echo '<option value="'. $i .'">'. $i .'</option>'."\n";
    							$i++;
    						}
    					?>
    				</select>
    			</td>
    		</tr>
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    // Code du contrôle permettant la création du client
    <?php
    	require_once("../connexion.php"); 				// Inclue le fichier correspondant à la connexion
    	require_once("../Classes/class_client.php"); 	// Inclue le fichier correspondant à la classe client
    	require_once("../DAO/client_DAO.php");			// Inclue le fichier correspondant à la DAOclient
    	session_start(); 								// Démarrage de la session
    	
    	$titre=$_POST['titre'];				// Insére le titre via la méthode POST
    	$nom=$_POST['nom'];					// Insére le nom via la méthode POST
    	$prenom=$_POST['prenom'];			// Insére le prénom via la méthode POST	
    	$jours=$_POST['jours'];
    	$mois=$_POST['mois'];
    	$années=$_POST['années'];		
    	$mail=$_POST['mail'];				// Insére le mail via la méthode POST
    	$motPasse=$_POST['motPasse'];		// Insére le mot de passe via la méthode POST
    	$adresse=$_POST['adresse'];			// Insére l'adresse via la méthode POST
    	$code_postal=$_POST['code_postal'];	// Insére le code postal via la méthode POST
    	$ville=$_POST['ville'];				// Insére la ville via la méthode POST
    	
    	// Si les renseignements du clients sont vides alors un message nous informe de remplir tout les champs
    	if (($nom=="")&&($prenom=="")&&($jours=="")&&($mois=="")&&($années=="")&&($mail=="")&&($motPasse=="")&&($adresse=="")&&($code_postal=="")&&($ville==""))
    	{
    ?>
    
    <!-- Javascript permettant l'affichage du message d'alert -->
    <script language="JavaScript">
    	alert('Veuillez remplir tous les champs');
    </script>
    
    <?php
    	require("../Vue/V_client.php");	// Require permet d'exécuter la vue suivante : "vue du client"
    	}
    	else
    	{
    		$dateNais=$années."-".$mois."-".$jours;
    		// Instance de client_DAO permettant de récupérer les renseignements correspondant au client
    		$MonClt=new client_DAO($titre,$nom,$prenom,$dateNaiss,$mail,$motPasse,$adresse,$code_postal,$ville);
    		// Appel de la fonction 'Sauvegarder_UnClient' via la variable "MonClt"
    		$MonClt->Sauvegarder_UnClient();
    		// setcookie permet d'envoyer un cookie
    		// mktime permet de retourner le temps d'une date
    		setcookie("moto_28", $MonClt->get_IdClient(),mktime(0, 0, 0, 12, 12, 2008),"/");
    
    ?>
    
    		<!-- Javascript permettant d'effectuer l'action 'panier' -->
    		<script language="JavaScript">
    			document.location.href='../index.php?action=panier';
    		</script> 
    		
    <?php
    	}
    ?>
    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table (DATEDENAISSANCE) VALUES ($annee . '-' . $mois . '-' $jour)
    Je suis d'accord mais comment je peux faire car j'ai une fonction 'SauvegarderUnClient' dans ma classe DAO_Client(Accées aux données de ma base) mais dans ma classe Client, la dateDeNaissance comporte une seule variable '$dateNaiss'.
    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
    23
    24
    25
    26
    27
    28
    29
    30
    // Code de ma classe client
    <?php
    class client
    {
    	private $IdClient;		// Le numéro d'un client
    	private $titre;			// Le titre d'un client ("M", "Mme", "Mlle")
    	private $nom;			// Le nom d'un client
    	private $prenom;		// Le prenom d'un client
    	private $dateNaissance; // La date de naissance du client
    	private $age;
    	private $mail;   		// Le mail du client
    	private $motPasse;		// Le mot de passe du client
    	private $adresse;		// L'adresse d'un client
    	private $code_postal;	// Le code postal d'un client 
    	private $ville;			// La ville d'un client
    	
    	// Constructeur
    	public function client ($titre=null, $nom=null, $prenom=null, $DateNaiss=null, $mail=null, $motPasse=null, $adresse=null, $code_postal=null, $ville=null)
    	{
    		$this->IdClient = -1;
    		$this->titre = $titre;
    		$this->nom = $nom;
    		$this->prenom = $prenom;
    		$this->dateNaissance = $DateNaiss;
    		$this->mail = $mail;
    		$this->motPasse = $motPasse;
    		$this->adresse = $adresse;
    		$this->code_postal = $code_postal;
    		$this->ville = $ville;
    	}............}
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    // code de la fonction sauvegarder un client
    public function Sauvegarder_UnClient()
    	{
    		if ($this->get_IdClient()!=-1){
    			$req="UPDATE client SET";
    			$req=$req." TITRE='".$this->get_titre()."',";
    			$req=$req." NOM='".$this->get_nom()."',";
    			$req=$req." PRENOM='".$this->get_prenom()."',";
    			$req=$req."DATEDENAISSANCE='".$this->get_DateNaissance()."' ,'";
    			$req=$req." MAIL='".$this->get_mail()."',";
    			$req=$req." MOTPASSE='".$this->get_motPasse()."',";
    			$req=$req." ADRESSE='".$this->get_adresse()."',";
    			$req=$req." CODE_POSTAL='".$this->get_code_postal()."',";
    			$req=$req." VILLE='".$this->get_ville()."'";
    			$req=$req." WHERE IDClient=".$this->get_IdClient();
    			$res = mysql_query($req);
    		}
    		else
    		{
    			//on recupere le nombre de client
    			$req="select count(*) as nombre from client";
    			//echo $req;
    			$res = mysql_query($req);
    			$row = mysql_fetch_array($res);
    
    			//on fait plus 1
    			$this->set_IdClient($row["nombre"]+1);
    			
    			$req="INSERT INTO client(IDClient, TITRE, NOM, PRENOM, DATEDENAISSANCE, MAIL, MOTPASSE, ADRESSE, CODE_POSTAL, VILLE) VALUES (".$this->get_IdClient().",'".$this->get_titre()."','".$this->get_nom()."','".$this->get_prenom()."','".$this->get_DateNaissance()."','".$this->get_mail()."','".$this->get_motPasse()."','".$this->get_adresse()."','".$this->get_code_postal()."','".$this->get_ville()."')";
    			$res = mysql_query($req);
    			
    		}
    	}
    Merci d'avance pour votre aide!!

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quel format renvoit la fonction $this->get_DateNaissance() ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à sabotage
    La fonction 'get_DateNaissance()' c'est mon getter de ma classe 'client' qui est réalisé de la forme suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function get_DateNaissance()
    	{
    		return $this->dateNaissance;
    	}
    Quoi te dire de plus!!J'espère que cela répond bien à ta question!!

    Cordialement!!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    On pourrait reprendre ?
    Quel est ton probleme sur la date de naissance ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à Sabotage
    Bon mon problème sur la date de naisance c'est que je vois pas comment l'enregistrer dans ma base de données MySql car dans ma base de données la date de naissance correspond à un seulchamp alors que dans mon code, j'ai fais en sorte que l'utilisateur du site choisise sa date de naissance par des liste déroulante c'est à dire, j'ai une liste déroulante pour le jour, une pour le mois et la dernière pour l'année.

    Donc je vois pas comment faire pour que les 3 liste déroulante s'enregistre dans ma base de données plus précisément dans mon champ 'DATEDENAISSANCE' de ma table 'Client' en sachant que dans ma classe 'client'(donc de mon code) j'ai juste un attribut qui correspond à la date de naissance.

    J'espère être plus clair??!!

    Cordialement!!

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ah ba le parametre que tu dois passer à ta fonction c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $datenaissance = $annee . '-' . $mois . '-' . $jour
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à sabotage
    Donc à la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $this->dateNaissance;
    dans ma fonction 'get_DateNaissance()' je devrait mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $datenaissance = $annee . '-' . $mois . '-' . $jour
    ??

    Mais le problème c'est que cette fonction je l'utilise dans d'autre code ou la date de naissance n'est pas divisé en 3 partie.

    Donc moi j'avais pensé faire ce que j'ai surligné, mit en rouge et en gras :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php
    
    	require_once("../connexion.php"); 				// Inclue le fichier correspondant à la connexion
    	require_once("../Classes/class_client.php"); 	// Inclue le fichier correspondant à la classe client
    	require_once("../DAO/client_DAO.php");			// Inclue le fichier correspondant à la DAOclient
    	session_start(); 								// Démarrage de la session
    	
    	$titre=$_POST['titre'];				// Insére le titre via la méthode POST
    	$nom=$_POST['nom'];					// Insére le nom via la méthode POST
    	$prenom=$_POST['prenom'];			// Insére le prénom via la méthode POST	
    	$jours=$_POST['jours'];
    	$mois=$_POST['mois'];
    	$annees=$_POST['annees'];		
    	$mail=$_POST['mail'];				// Insére le mail via la méthode POST
    	$motPasse=$_POST['motPasse'];		// Insére le mot de passe via la méthode POST
    	$adresse=$_POST['adresse'];			// Insére l'adresse via la méthode POST
    	$code_postal=$_POST['code_postal'];	// Insére le code postal via la méthode POST
    	$ville=$_POST['ville'];				// Insére la ville via la méthode POST
    	
    	// Si les renseignements du clients sont vides alors un message nous informe de remplir tout les champs
    	if (($nom=="")&&($prenom=="")&&($jours=="")&&($mois=="")&&($annees=="")&&($mail=="")&&($motPasse=="")&&($adresse=="")&&($code_postal=="")&&($ville==""))
    	{
    ?>
    
    <!-- Javascript permettant l'affichage du message d'alert -->
    <script language="JavaScript">
    	alert('Veuillez remplir tous les champs');
    </script>
    
    <?php
    	require("../Vue/V_client.php");	// Require permet d'exécuter la vue suivante : "vue du client"
    	}
    	else
    	{
    		$dateNais=$annees.'-'.$mois.'-'.$jours;
    		// Instance de client_DAO permettant de récupérer les renseignements correspondant au client
    		$MonClt=new client_DAO($titre,$nom,$prenom,$dateNaiss,$mail,$motPasse,$adresse,$code_postal,$ville);
    		// Appel de la fonction 'Sauvegarder_UnClient' via la variable "MonClt"
    		$MonClt->Sauvegarder_UnClient();
    		// setcookie permet d'envoyer un cookie
    		// mktime permet de retourner le temps d'une date
    		setcookie("moto_28", $MonClt->get_IdClient(),mktime(0, 0, 0, 12, 12, 2008),"/");
    
    ?>
    
    		<!-- Javascript permettant d'effectuer l'action 'panier' -->
    		<script language="JavaScript">
    			document.location.href='../index.php?action=panier';
    		</script> 
    		
    <?php
    	}
    ?>
    Mais la date de naissance ne s'enregistre pas!!

    Cordialement!!

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    il te manque un s
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dateNaiss=$annees.'-'.$mois.'-'.$jours;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à Sabotage
    J'ai beau rajouté un s, cela fonctionne que même pas.

    Comment faire pour savoir pourquoi?? Je me demande si '$jours', '$mois', '$annees' prend bien des valeurs... Comment je peux le vérifier??

    Cordialement!!

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Fais un echo tout simplement. Tu verras ce que valent tes variables.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à Sabotage
    Lorsque j'effectue la chose suivante :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?php
     
    	require_once("../connexion.php"); 				// Inclue le fichier correspondant à la connexion
    	require_once("../Classes/class_client.php"); 	// Inclue le fichier correspondant à la classe client
    	require_once("../DAO/client_DAO.php");			// Inclue le fichier correspondant à la DAOclient
    	session_start(); 								// Démarrage de la session
     
    	$titre=$_POST['titre'];				// Insére le titre via la méthode POST
    	$nom=$_POST['nom'];					// Insére le nom via la méthode POST
    	$prenom=$_POST['prenom'];			// Insére le prénom via la méthode POST	
    	$jours=$_POST['jours'];
    	$mois=$_POST['mois'];
    	$annees=$_POST['annees'];		
    	$mail=$_POST['mail'];				// Insére le mail via la méthode POST
    	$motPasse=$_POST['motPasse'];		// Insére le mot de passe via la méthode POST
    	$adresse=$_POST['adresse'];			// Insére l'adresse via la méthode POST
    	$code_postal=$_POST['code_postal'];	// Insére le code postal via la méthode POST
    	$ville=$_POST['ville'];				// Insére la ville via la méthode POST
     
    	echo $jours;
    	echo $mois;
    	echo $annees;
    	$dateNaiss=$annees.'-'.$mois.'-'.$jours;
    	echo $dateNaiss;
    	// Si les renseignements du clients sont vides alors un message nous informe de remplir tout les champs
    /*	if (($nom=="")&&($prenom=="")&&($jours=="")&&($mois=="")&&($annees=="")&&($mail=="")&&($motPasse=="")&&($adresse=="")&&($code_postal=="")&&($ville==""))
    	{
    ?>
     
    <!-- Javascript permettant l'affichage du message d'alert -->
    <script language="JavaScript">
    	alert('Veuillez remplir tous les champs');
    </script>
     
    <?php
    	require("../Vue/V_client.php");	// Require permet d'exécuter la vue suivante : "vue du client"
    	}
    	else
    	{
    		$dateNaiss=$annees.'-'.$mois.'-'.$jours;
    		// Instance de client_DAO permettant de récupérer les renseignements correspondant au client
    		$MonClt=new client_DAO($titre,$nom,$prenom,$dateNaiss,$mail,$motPasse,$adresse,$code_postal,$ville);
    		// Appel de la fonction 'Sauvegarder_UnClient' via la variable "MonClt"
    		$MonClt->Sauvegarder_UnClient();
    		// setcookie permet d'envoyer un cookie
    		// mktime permet de retourner le temps d'une date
    		setcookie("moto_28", $MonClt->get_IdClient(),mktime(0, 0, 0, 12, 12, 2008),"/");
     
    ?>
     
    		<!-- Javascript permettant d'effectuer l'action 'panier' -->
    		<script language="JavaScript">
    			document.location.href='../index.php?action=panier';
    		</script> 
     
    <?php
    	}*/
    ?>
    Cela m'affiche bien le jour, le mois et l'années sélectionnées via mes liste déroulante!! Voici ce que cela m'afffiche :
    101019861986-10-10
    Donc c'est parfait mais pourquoi ça me l'enregistre pas dans la base de données??

    Cordialement!!

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Affiche ta requete avant de l'executer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à sabotage
    Voici ce que me renvoie la requête :
    INSERT INTO client(IDClient, TITRE, NOM, PRENOM, DATEDENAISSANCE, MAIL, MOTPASSE, ADRESSE, CODE_POSTAL, VILLE) VALUES (10,'M','eztg','sdgy','','rthe@ki.fr','dhy','rsyuh','86854','fgdj')
    Donc effectivement, la date de naissance n'est pas prise. D'aprés toi a quoi cela est du??

    Cordialement!!

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu nous mets tellement de code dans tous les sens que je ne sais pas ce qui correspond a quoi.

    Montre nous simplement la définition de la date de naissance et l'insertion.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à sabotage
    Tu nous mets tellement de code dans tous les sens que je ne sais pas ce qui correspond a quoi.
    Je suis désolé!! Bon je vais me rattrapé en mettant tout le code que j'utilise pour la date de naissance c'est à dire de la création à l'insertion dans ma base de données.

    Tout d'abord, voici comment je la cré dans ma classe 'Client' :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    class client
    {
    	private $IdClient;		// Le numéro d'un client
    	private $titre;			// Le titre d'un client ("M", "Mme", "Mlle")
    	private $nom;			// Le nom d'un client
    	private $prenom;		// Le prenom d'un client
    	private $dateNaissance; // La date de naissance du client
    ...............
    // Constructeur
    	public function client ($titre=null, $nom=null, $prenom=null, $DateNaiss=null, $mail=null, $motPasse=null, $adresse=null, $code_postal=null, $ville=null)
    	{
    		$this->IdClient = -1;
    		$this->titre = $titre;
    		$this->nom = $nom;
    		$this->prenom = $prenom;
    		$this->dateNaissance = $DateNaiss;
    		$this->mail = $mail;
    		$this->motPasse = $motPasse;
    		$this->adresse = $adresse;
    		$this->code_postal = $code_postal;
    		$this->ville = $ville;
    	}
    .............
    public function get_DateNaissance()
    	{
    		return $this->dateNaissance;
    	}
    ...................
    public function set_DateNaissance($laDateNaissance)
    	{
    		$this->dateNaissance = $laDateNaissance;
    	}
    Ensuite, la classe V_Client (c'est la vue qui permet d'afficher les textBox, liste déroulante... pour que l'utilisateur puisse s'enregistrer) :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <form name="client" method="POST" action="Controles/C_creation_client.php">
    	<table>
    .......................
    <tr>
    			<td>Date de naissance</td>
    			<!-- 'type="text" permet le champ de saisit correspondant a la date de naissance du client lors de sa création -->
    			<td><select name="jours">
    					<?php
    						$i = 1;
    						while($i <= 31)
    						{
    							echo '<option value="'. $i .'">'. $i .'</option>'."\n";
    							$i++;
    						}
    					?>
    				</select>
    				<select name="mois">
    					<?php
    						$i = 1;
    						while($i <= 12)
    						{
    							echo '<option value="'. $i .'">'. $i .'</option>'."\n";
    							$i++;
    						}
    					?>
    				</select>
    				<select name="annees">
    					<?php
    						$i = 1940;
    						while($i <= date('Y')) 
    						{
    							echo '<option value="'. $i .'">'. $i .'</option>'."\n";
    							$i++;
    						}
    					?>
    				</select>
    			</td>
    		</tr>
    ................
    </table>
    </form>
    Puis la classe C_CreationClient (c'est le contrôle qui permet de faire appel au méthode... dont on a besoin pour enregistrer le client dans la base de données MySql) :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <?php
     
    	require_once("../connexion.php"); 				// Inclue le fichier correspondant à la connexion
    	require_once("../Classes/class_client.php"); 	// Inclue le fichier correspondant à la classe client
    	require_once("../DAO/client_DAO.php");			// Inclue le fichier correspondant à la DAOclient
    	session_start(); 								// Démarrage de la session
     
    	$titre=$_POST['titre'];				// Insére le titre via la méthode POST
    	$nom=$_POST['nom'];					// Insére le nom via la méthode POST
    	$prenom=$_POST['prenom'];			// Insére le prénom via la méthode POST	
    	$jours=$_POST['jours'];
    	$mois=$_POST['mois'];
    	$annees=$_POST['annees'];		
    	$mail=$_POST['mail'];				// Insére le mail via la méthode POST
    	$motPasse=$_POST['motPasse'];		// Insére le mot de passe via la méthode POST
    	$adresse=$_POST['adresse'];			// Insére l'adresse via la méthode POST
    	$code_postal=$_POST['code_postal'];	// Insére le code postal via la méthode POST
    	$ville=$_POST['ville'];				// Insére la ville via la méthode POST
     
    	echo $jours;
    	echo $mois;
    	echo $annees;
    	$dateNaiss=$annees.'-'.$mois.'-'.$jours;
    	echo $dateNaiss;
    	// Si les renseignements du clients sont vides alors un message nous informe de remplir tout les champs
    	if (($nom=="")&&($prenom=="")&&($jours=="")&&($mois=="")&&($annees=="")&&($mail=="")&&($motPasse=="")&&($adresse=="")&&($code_postal=="")&&($ville==""))
    	{
    ?>
     
    <!-- Javascript permettant l'affichage du message d'alert -->
    <script language="JavaScript">
    	alert('Veuillez remplir tous les champs');
    </script>
     
    <?php
    	require("../Vue/V_client.php");	// Require permet d'exécuter la vue suivante : "vue du client"
    	}
    	else
    	{
    		$dateNaiss=$annees.'-'.$mois.'-'.$jours;
    		// Instance de client_DAO permettant de récupérer les renseignements correspondant au client
    		$MonClt=new client_DAO($titre,$nom,$prenom,$dateNaiss,$mail,$motPasse,$adresse,$code_postal,$ville);
    		// Appel de la fonction 'Sauvegarder_UnClient' via la variable "MonClt"
    		$MonClt->Sauvegarder_UnClient();
    		// setcookie permet d'envoyer un cookie
    		// mktime permet de retourner le temps d'une date
    		setcookie("moto_28", $MonClt->get_IdClient(),mktime(0, 0, 0, 12, 12, 2008),"/");
     
    ?>
    		<!-- Javascript permettant d'effectuer l'action 'panier' -->
    		<script language="JavaScript">
    			document.location.href='../index.php?action=panier';
    		</script> 
     
    <?php
    	}
    ?>
    Pour finir, la méthode 'Sauvegarder_UnClient'(qui permet d'enregistrer un client dans ma base) qui se situe dans classe DAO_Client (la classe permettant l'accées aux données de ma base) :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    // Enregistrer le nouveau client
    	public function Sauvegarder_UnClient()
    	{
    		if ($this->get_IdClient()!=-1){
    			$req="UPDATE client SET";
    			$req=$req." TITRE='".$this->get_titre()."',";
    			$req=$req." NOM='".$this->get_nom()."',";
    			$req=$req." PRENOM='".$this->get_prenom()."',";
    			$req=$req."DATEDENAISSANCE='".$this->get_DateNaissance()."' ,'";
    			$req=$req." MAIL='".$this->get_mail()."',";
    			$req=$req." MOTPASSE='".$this->get_motPasse()."',";
    			$req=$req." ADRESSE='".$this->get_adresse()."',";
    			$req=$req." CODE_POSTAL='".$this->get_code_postal()."',";
    			$req=$req." VILLE='".$this->get_ville()."'";
    			$req=$req." WHERE IDClient=".$this->get_IdClient();
    			$res = mysql_query($req);
    		}
    		else
    		{
    			//on recupere le nombre de client
    			$req="select count(*) as nombre from client";
    			//echo $req;
    			$res = mysql_query($req);
    			$row = mysql_fetch_array($res);
     
    			//on fait plus 1
    			$this->set_IdClient($row["nombre"]+1);
     
    			$req="INSERT INTO client(IDClient, TITRE, NOM, PRENOM, DATEDENAISSANCE, MAIL, MOTPASSE, ADRESSE, CODE_POSTAL, VILLE) VALUES (".$this->get_IdClient().",'".$this->get_titre()."','".$this->get_nom()."','".$this->get_prenom()."','".$this->get_DateNaissance()."','".$this->get_mail()."','".$this->get_motPasse()."','".$this->get_adresse()."','".$this->get_code_postal()."','".$this->get_ville()."')";
    			echo $req;
    			$res = mysql_query($req);
     
    		}
    	}
    J'espère avoir été plus claire et que cela te permettra de pouvoir plus m'aider!!

    Merci d'avance!!

  18. #18
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    hey dis donc, ta date de naissance tu l'insère tels quels est setup dans client ? Et c'est quand que tu vérifies le format ????????
    Sert à rien de faire troiscents classes pour séparer les couches si déjà elles font pas ce qu'ils faut. Vaut mieu en faire une, mais bien.

    Sinon à l'insertion on laisse le sgbd[r) s'occuper d'incrémenter l'id car il le fait de manière atomique.. ce que tu ne PEUX PAS faire.

    Autrement la gestion des erreurs personne n'à trouver de solution pour s'en passer alors tu vas nous rajouter des ptits or die

    $res = mysql_query($req) or die( mysql_errno(). " ".mysql_error() );

    Merci

    a plus

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à kaymak
    Merci pour ta réponse.

    ta date de naissance tu l'insère tels quels est setup dans client ?
    Suis désolé mais je n'est pas trop compris ce que ta voulu dire par : 'setup...'??

    Et c'est quand que tu vérifies le format ????????
    Ben c'est pour ça que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dateNaiss=$annees.'-'.$mois.'-'.$jours;
    car ca me permet d'insérer la date de naissance dans l'ordre que le souhaite le SGBD c'est à dire MySql.

    Autrement la gestion des erreurs personne n'à trouver de solution pour s'en passer alors tu vas nous rajouter des ptits or die

    $res = mysql_query($req) or die( mysql_errno(). " ".mysql_error() );
    Tu pense qu'en mettant des 'or die' cela va régler mes problème??

    Merci d'avance!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] date de naissance dans php
    Par luiggi12 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/04/2010, 00h06
  2. [1.x] [1.0.12]Gestion des dates dans un environnement international
    Par pmithrandir dans le forum Symfony
    Réponses: 1
    Dernier message: 16/10/2009, 11h20
  3. gestion des dates dans formulaires
    Par ln0331 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/12/2007, 12h18
  4. gestion des dates dans un formulaire
    Par clement42 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 18/05/2006, 11h34

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