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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

+ 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