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 :

formulaire plusieurs tables plusieurs champs mais 2 identiques


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut formulaire plusieurs tables plusieurs champs mais 2 identiques
    Bonjour tous le monde.
    Je tourne un petit peu en rond alors je viens chercher vos lumières je suis sur que c'est un jeux d'enfants pour vous.
    Petite explication :
    J'ai un formulaire avec une partie client et une partie conjoint.
    Dans ce formulaire il y a un champs commun aux 2 qui est le genre.
    Je clients à une table à lui le conjoint à également sa table et une table pour le genre.
    donc dans la table client il y a un champ id_genre et dans la table conjoint il y a le même champ qui correspondent tous les 2 à l'id dans la table genre.
    Pour enregistré mon formulaire tout va biens puisque j'enregistre par rapport au nom des "input"
    par contre quand je veux les ré afficher j'ai un petit problème le genre qui apparaît dans conjoint et systématiquement celui de du client
    Vu mon code je sais bien qu'il ne peux en être autrement mais je ne vois pas du tout comment faire pour aller chercher l'id_genre du conjoint dans ma requette que je vous poste ci-dessous.
    J'espère avoir était clair.
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    <?php
    $sql =  ("SELECT * from clients
    		LEFT JOIN genre
    		ON clients.genre_idgenre = genre.idgenre
    		LEFT JOIN conjoint
    		ON clients.id_clients = conjoint.id_clients
    		LEFT JOIN adresse_client
    		ON clients.id_clients = adresse_client.id_clients
    		LEFT JOIN cp_autocomplete
    		ON adresse_client.cp_id_client = cp_autocomplete.id_cp	
    		WHERE clients.id_clients='$id'") ;
    		$resultat =mysqli_query($connexion,$sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysqli_error());
    		$client=mysqli_fetch_array($resultat);
     
    ?>
     
    <!-- Partie Client -->
    <form action="modifclient.php?id=<?php echo $id;?>" class="register" method="post">
    	<fieldset class="row1">
    		<legend>Informations Client</legend>
    		<div class="register">
    			<label>Titre : *</label>
    			<select class="date" name="genre">
    			<option value="<?php echo $client['idgenre']; ?>" selected="selected"><?php echo $client['genre']; ?></option>
    			<?php
     
          $requete=mysqli_query($connexion,"SELECT * FROM genre");
     
        while ($donnees = mysqli_fetch_array($requete) ){
     
       ?>
       <option value="<?php echo $donnees['idgenre']; ?>"><?php echo $donnees['genre']; ?></option>
     <?php
     
    }
     ?>
    	</select>
    		</div>
    <div class="register">
    <label for="nom">Nom : * </label>
    <input class="long" type="text" name="nom" value="<?php echo $client['nom_client']; ?>" required>
     
    <label for="prenom">Prènom : * </label>
    <input class="long" type="text" name="prenom" value="<?php echo $client['prenom_client']; ?>" required>
    </div>
     
    <div class="register">
    <label for="adresse">Adresse : * </label>
    <input class="long" type="text" name="adresse" value="<?php echo $client['adresse1_client']; ?>" required>
     
    <label for="adresse2">Adresse2 : </label>
    <input class="long" type="text" name="adresse2" value="<?php echo $client['adresse2_client']; ?>" >
    <input id="id_cp" type="hidden" name="id_cp" value="<?php echo $client['cp_id_client']; ?>">
    </div>
    <div class="register">
    <label for="bat">Batiment : </label>
    <input class="long" type="text" name="bat"value="<?php echo $client['bat_client']; ?>">
     
    <label for="etage">Etage : </label>
    <input class="long" type="text" name="etage" value="<?php echo $client['etage_client']; ?>">
    </div>
    <div class="register">
    <label for="cp">Code postal : * </label>
    <input class="long" id="cp" type="text" name="cp"value="<?php echo $client['CP']; ?>">
     
    <label for="code">Code : </label>
    <input class="long" type="text" name="code" value="<?php echo $client['code_client']; ?>">
    </div>
     
    <div class="register">
    <label for="ville">Ville : * </label>
    <input id="ville" class="long" type="text" name="ville" value="<?php echo $client['VILLE']; ?>">
     
    <label for="tel1">Téléphone : </label>
    <input class="long" type="tel" name="tel1" value="<?php echo $client['tel_client']; ?>" pattern="[0-9]{10}" >
    </div>
     
    <div class="register">
    <label for="tel2">Portable : </label>
    <input class="long" type="tel" name="tel2" value="<?php echo $client['port1_client']; ?>" pattern="[0-9]{10}">
     
    <label for="tel3">Autres tel : </label>
    <input class="long" type="tel" name="tel3" value="<?php echo $client['port2_client']; ?>" pattern="[0-9]{10}">
    </div>
     
    <div class="register">
    <label for="mail">Email : </label>
    <input class="long" type="text" name="mail" value="<?php echo $client['mail_client']; ?>"">
     
    <label for="daten">Date naissance : * </label>
    <input class="long" type="date" name="daten" value="<?php echo $client['naissance_client']; ?>" required>
    </div>
     
    <div class="register">
    <label for="datea">Date d'arrivée : * </label>
    <input class="long" type="date" name="datea" value="<?php echo $client['naissance_client']; ?>" required>
     
    <label for="datef">Date de fin de contrat : </label>
    <input class="long" type="date" name="datef" value="<?php echo $client['naissance_client']; ?>">
    </div>
     
    <div class="register">
    <label for="datep">Date de pause : </label>
    <input class="long" type="date" name="datep" value="<?php echo $client['naissance_client']; ?>">
     
    <label for="dater">Date de reprise : </label>
    <input class="long" type="date" name="dater" value="<?php echo $client['naissance_client']; ?>">
    </div>
    <div class="register">
    	 <h2 align="center">Contre indications Médical :</h2>
    	<label for="ssel">Sans Sel : </label> <input type="checkbox" name="ssel" id="ssel" />
        <label for="diabete">Diabétique</label> <input type="checkbox" name="diabete" id="diabete" />
        <label for="diete">Diête</label> <input type="checkbox" name="diete" id="diete" />
        <label for="gluten">gluten</label> <input type="checkbox" name="gluten" id="gluten" />
    </div>
    <div class="register">
    	 <h2 align="center">Pains :</h2>
    	<label for="baguette">baguette : </label> <input type="checkbox" name="baguette" id="baguette" />
        <label for="pm">Pain de mie :</label> <input type="checkbox" name="pm" id="pm" />
        <label for="biscotte">Biscotte :</label> <input type="checkbox" name="biscotte" id="biscotte" />
        <label for="bss">Biscotte sans sel :</label> <input type="checkbox" name="bss" id="bss" />
    </div>
    </fieldset>
     
    <!-- Partie Conjoint -->
    	<fieldset class="row2">
    		<legend>Conjoint</legend>
    		<div class="register">
    			<label>Titre : *</label>
    			<select class="date" name="genrec">
    				<option value="<?php echo $client['idgenre']; ?>" selected="selected"><?php echo $client['genre']; ?></option>
    <?php
       //requette pour afficher les genres 
          $requete=mysqli_query($connexion,"SELECT * FROM genre");
     
        while ($donnees = mysqli_fetch_array($requete) ){
     
       ?>
       <option value="<?php echo $donnees['idgenre']; ?>"><?php echo $donnees['genre']; ?></option>
     <?php
     mysqli_close($connexion);
    }
     ?>
    </select>
    </div>
    <div class="register">
    <label for="nomc">Nom : *</label>
    <input class="long" type="text" name="nomc" value="<?php echo $client['nom_conjoint']; ?>">
    </div>
    <div class="register">
    <label for="prenomc">Prènom : *</label>
    <input class="long" type="text" name="prenomc" value="<?php echo $client['prenom_conjoint']; ?>">
    </div>
    <div class="register">
    <label for="datenc">Date de naissance : *</label>
    <input class="long" type="date" name="datenc" value="<?php echo $client['naissance_conjoint']; ?>">
    </div>
    <div class="register">
    <label for="datepc">Date de pause : </label>
    <input class="long" type="date" name="datepc" value="<?php echo $client['naissance_conjoint']; ?>">
     
    <label for="daterc">Date de reprise : </label>
    <input class="long" type="date" name="daterc" value="<?php echo $client['naissance_conjoint']; ?>">
    </div>
    <div class="register">
    	 <h2 align="center">Contre indications Médical :</h2>
    	<label for="sselc">Sans Sel : </label> <input type="checkbox" name="sselc" id="sselc" />
        <label for="diabetec">Diabétique :</label> <input type="checkbox" name="diabetec" id="diabetec" />
        <label for="dietec">Diête :</label> <input type="checkbox" name="dietec" id="dietec" />
        <label for="glutenc">gluten :</label> <input type="checkbox" name="glutenc" id="glutenc" />
    </div>
    <div class="register">
    	 <h2 align="center">Pains :</h2>
    	<label for="baguettec">baguette : </label> <input type="checkbox" name="baguettec" id="baguettec" />
        <label for="pmc">Pain de mie :</label> <input type="checkbox" name="pmc" id="pm" />
        <label for="biscottec">Biscotte :</label> <input type="checkbox" name="biscottec" id="biscottec" />
        <label for="bssc">Biscotte sans sel :</label> <input type="checkbox" name="bssc" id="bssc" />
    </div>
    </fieldset>
    <input class="button" type="submit" name="modification" value="Modification">
    <input  class="button" value="Retour Gestion" OnClick="window.location.href='clients.php'">
    </form>
    </body>
    Merci d'avance de votre aide

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est un des problèmes rencontrés quand on fait un SELECT *.
    Si tu demandes uniquement les champs dont tu as besoin, ça te permet d'utiliser des alias, par exemple
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT table1.genre, table2.genre AS genre2 FROM ...

  3. #3
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Lorsque tu fais ton select il te renvoie quoi?

  4. #4
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    @ Bovino Je pensais avoir à peut prés compris l'histoire des alias et pour moi ce n’était qu'une façon de réduire la taille de la requette car au lieux de tapez plusieurs fois le nom d'une table en entier tu créez un alias d'une lettre ou 2 pour le nom des tables.
    Je ne vois ne comprend pas comment en mettant des allias je les retrouvent dans mon formulaire.
    en fait mon problème actuelle c'est que mon formulaire se remplis bien sauf dans la partie conjoint ou le "genre" qui s'inscrit est celui de mon client en non pas celui du conjoint.
    @Krepz comme je viens de le dire plus haut tout sort correctement sauf que j'ai 2 champs genre un pour le client un pour le conjoint et que celui du conjoint n'est jamais le bon c'est celui du client qui sort..

    Exemple si le client est Mr et le conjoint Madame
    j'ai le client qui sort bien en Mr mais le conjoint est également Mr.
    le client est toujours bon mais le conjoint et toujours le client et je ne sais pas comment modifier ma requette dans le value genre pour avoir bien le genre du conjoint.

    Requette pour le 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
    <label>Titre : *</label>
    			<select class="date" name="genre">
    			<option value="<?php echo $client['idgenre']; ?>" selected="selected"><?php echo $client['genre']; ?></option>
    			<?php
     
          $requete=mysqli_query($connexion,"SELECT * FROM genre");
     
        while ($donnees = mysqli_fetch_array($requete) ){
     
       ?>
       <option value="<?php echo $donnees['idgenre']; ?>"><?php echo $donnees['genre']; ?></option>
     <?php
     
    }
     ?>
    Requette pour le conjoint

    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
    <label>Titre : *</label>
    			<select class="date" name="genrec">
    				<option value="<?php echo $client['idgenre']; ?>" selected="selected"><?php echo $client['genre']; ?></option>
    <?php
       //requette pour afficher les genres 
          $requete=mysqli_query($connexion,"SELECT * FROM genre");
     
        while ($donnees = mysqli_fetch_array($requete) ){
     
       ?>
       <option value="<?php echo $donnees['idgenre']; ?>"><?php echo $donnees['genre']; ?></option>
     <?php
     mysqli_close($connexion);
    }
     ?>
    Evidement que j'ai le même résultat puisque c'est la même requette seul le "name" du "select" change.
    Mais quoi mettre pour avoir le bon genre c'est la ou je bloque je ne vois pas du tout comment faire?
    Merci de votre aide.
    Bovino si tu peux me faire un petit exemple concret par rapport à mon code je suis preneur.
    Merci

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Sous réserve d'avoir tout compris (), tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $sql =  ("SELECT clients.*, conjoint.genre AS genre2 from clients
    		LEFT JOIN genre
    		ON clients.genre_idgenre = genre.idgenre
    		LEFT JOIN conjoint
    		ON clients.id_clients = conjoint.id_clients
    		LEFT JOIN adresse_client
    		ON clients.id_clients = adresse_client.id_clients
    		LEFT JOIN cp_autocomplete
    		ON adresse_client.cp_id_client = cp_autocomplete.id_cp	
    		WHERE clients.id_clients='$id'") ;
    Ainsi, dans ton résultat, $donnees['genre'] correspondra à la valeur de la table clients et $donnees['genre2'] correspondra à la valeur de la table conjoint

  6. #6
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    merci Bovino c'est déjà un peu mieux.
    ça me sort bien maintenant l'id qui correspond bien au genre de mon conjoint.
    Mais ça ne me sort que l'ID pas le genre qui correspond en gros maintenant au lieux de Mme qui correspond à l'id 3 j'ai "3"

    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
    <label>Titre : *</label>
    			<select class="date" name="genrec">
    				<option value="<?php echo $client['idgenre']; ?>" selected="selected"><?php echo $client['genre2']; ?></option>
    <?php
       //requette pour afficher les genres 
          $requete=mysqli_query($connexion,"SELECT * FROM genre");
     
        while ($donnees = mysqli_fetch_array($requete) ){
     
       ?>
       <option value="<?php echo $donnees['idgenre']; ?>"><?php echo $donnees['genre2']; ?></option>
     <?php
     mysqli_close($connexion);
    }
     ?>
    Pour rappel j'ai 3 tables
    une pour le client qui s'appel "client"s avec dedans un champ genre_idgenre qui correspond à l'id de la table genre
    une autre conjoint qui s'appel "conjoint" avec le mêm nom de champs que la table client genre_idgenre
    et une 3eme avec donc 2 champs qui s'appel genre avec un champ idgenre et genre qui correspond à mr Mme ect....
    Ce que je dois faire apparaître dans mon menu déroulant de mon formulaire c'est le genre Mr Mme ect..
    la maintenant ce qui apparaît c'est id du genre. ce qui est déjà mieux qu'au début car c'est bien celui de mon conjoint et non plus celui du client
    Merci

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par pipiche13011
    Bovino si tu peux me faire un petit exemple concret par rapport à mon code je suis preneur.
    C'est ce que j'ai fait, maintenant, à toi d'adapter cet exemple pour que la requête te renvoie la donnée souhaitée à la place d'une donnée qui ne t'intéresse pas.
    Je t'ai montré la marche à suivre, pas forcément la solution.

Discussions similaires

  1. Left join avec plusieurs table & plusieurs champs
    Par jayfaze dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 16/12/2009, 15h01
  2. Réponses: 5
    Dernier message: 10/05/2008, 18h11
  3. Réponses: 2
    Dernier message: 10/05/2008, 17h53
  4. Contrôles formulaire venant de plusieurs tables
    Par alainmante dans le forum IHM
    Réponses: 5
    Dernier message: 05/05/2008, 18h51
  5. Réponses: 2
    Dernier message: 09/08/2006, 22h04

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