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 :

Récupérer valeur d'une jointure


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Par défaut Récupérer valeur d'une jointure
    Bonjour à tous, j'ai 2 tables pour créer un formulaire. Plus précisément, ma première table me permet de stocker l'id et le nom du formulaire, la deuxième table me permet de stocker les différents champs que je crée (leur nom et leur type).
    Dans cette deuxième table, j'ai un champ id du formulaire qui me permet de faire la jointure avec la première table!

    Mon problème c'est comment récuupérer la valeur de l'id de la première table car c'est cette valeur qui me permettra de différencier mes différents formulaires!

    Voici une idée de mes tables:
    id_titre nom_titre
    1 Formulaire1
    2 Formulaire2
    3 Formulaire3

    id_test nom_test choix_test id_titre
    1 Nom texte 1
    2 Prénom texte 1
    3 Nom texte 2
    4 Prénom texte 2
    5 Nom texte 3
    6 Prénom texte 3


    Et le fichier qui contient la requête avec la jointure:

    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
    <!DOCTYPE html>
    <html>
     
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>sans titre 1</title>
     
    <script language="javascript">
     
    function create_champ(){
    	var item = document.getElementsByTagName("div")[1];
    	var clone = item.cloneNode(true);
    	document.body.appendChild(clone);
    }
     
    function supprime_champ(){
    	var cpt = parseInt(document.getElementById('nombre').value);
    	cpt--;
    	var parent = document.getElementById('zone_dynamique');
    	var NodeListe = parent.getElementsByTagName("div"); 
     
     
    	if( NodeListe.length >= 2 ){
    		var Enfant=NodeListe[NodeListe.length-1]
    		parent.removeChild(Enfant);
    		document.getElementById('nombre').value = cpt;
    	}		
     
     
    }
     
     
    -->
    </script>
     
     
    <script>
      function choixChange(obj){
      	 var valeur = obj.value;
         var paragraphe = document.getElementById("paragrapheSupplementaire");
         paragraphe.innerHTML="";
         if (valeur == "liste" || valeur == "bouton"){
            paragraphe.innerHTML+="<label>Rentrez les informations:</label>"
            +'<input name=sous_choix type="text">';
            /*+'<select name="orientation" id="orientation">'
            +'<option value="LP">LP</option>'
            +'<option value="master">master</option>'
            +'<option value="inge">Ecole d\'ingé</option>'
            +'<option value="boulot">Boulot</option>'
            +'<option value="autre">Autre</option>'
            +'</select>';*/
     
         }
      }
      choixChange();
    </script>
     
     
    <script language="javascript">
     
          function confirme( identifiant )
          {
            var confirmation = confirm( "Voulez vous vraiment supprimer cet enregistrement ?" ) ;
    	if( confirmation )
    	{
    	  document.location.href = "suppression2.php?id_test="+identifiant ;
    	}
          }
     
        </script>
     
    </head>
    <body>
     
     
    <?php
    $serveur = "localhost";
    $base = "xxxx";
    $user = "root";
    $pass = "xxxx";
     
    $mysqli = new mysqli($serveur, $user, $pass, $base);
    $mysqli->set_charset("utf8");
    if ($mysqli->connect_error) {
        die('Erreur de connexion ('.$mysqli->connect_errno.')'. $mysqli->connect_error);
    }
    else {
        //echo 'connexion réussie : '.$mysqli->host_info .'</br>';
    }
     
    $sql = '
    SELECT * 
    FROM `test23` f
    JOIN `titre23` t ON f.`id_titre` = t.`id_titre`
    ';
     
     
    $result = $mysqli->query($sql);
    ?>
    	<table cellspacing="0" cellpadding="3px" rules="rows" style="border:solid 1px #777777; border-collapse:collapse; font-family:verdana; font-size:11px;"> 
    		<tr style="background-color:lightgrey;">
    	      <th style="width:100px;">Nom</th>
    	      <th style="width:100px;">Valeur_champ</th>
    	      <th style="width:100px;">Sous champ</th>
    	      <th style="width:100px;">Modifier</th>
    	      <th style="width:100px;">Supprimer</th>
    	   	</tr> 
     
    <?php
    while($data = $result->fetch_array())
    {
    	echo $data['id_titre'];
     
    $titre = $data['nom_titre'];
     
    ?>
     
    		<tr>
    	      <td style="padding-left:10px; color:midnightblue;"><?php echo $data['nom_test']; ?></td>
    	      <td style="padding-left:10px; color:midnightblue;"><?php echo $data['choix_test']; ?></td>
    	      <td style="padding-left:10px; color:midnightblue;"><?php echo $data['sous_choix']; ?></td>
    	      <td>
    	      <?php echo( "<a href=\"modification2.php?id_test=".$data['id_test']."\">Modifier</a></div>") ; ?>
           	  </td>	
           	  <td>
           	  <?php echo( "<a href=\"#\" onClick=\"confirme('".$data['id_test']."')\" >Supprimer</a><br>") ; ?>
           	  </td>	   	
           	</tr> 
    <?php	
    }
    ?>
     
    	</table>
     
     
     
     
    <fieldset name="test">
    <legend><?php echo $titre; ?></legend>
    <form id="id_test" name="test23[]" method="post" action="test_traitement23.php">
    <!--Nombre de champs : <input name="nombre" id="nombre" type="text" value="1" size="3">-->
     
     
    	<div id="zone_dynamique">
    		<div id="test" align="left"> 
    			Nom du champ: 
    			<input name="nom_test" type="text"/>
    			Choix : <select name="choix_test" id="choix" onchange='choixChange(this);'> 
    			<option value="test" selected="selected">Choisir un type</option>
    			<option value="champ_texte">Champ de texte</option>
    	        <option value="zone_email">Zone d'adresse e-mail</option>
    	        <option value="liste">Liste déroulante</option>
    	        <option value="bouton">Boutons radio</option>
    	        <option value="case">Cases à cocher</option>
    	        <option value="zone_texte">Zone de texte</option> 
    		</select> 
    		</div>
     
    		<div id="paragrapheSupplementaire">
     
    		</div>
    	</div>
     
     
    	<div id="button">
    		<!--<input type="button" onClick="javascript:create_champ()" value="Ins&eacute;rer un autre champ"/>-->
    		<input type="submit" value="envoyer" name="valider"/>
    	</div>	
     
    </form>
    </fieldset>
     
    <?php
     
    $result->close();
     
    $mysqli->close();
     
    ?>
     
    </body>
     
    </html>
    Merci beaucoup par avance!

  2. #2
    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 : 33
    Localisation : France, Finistère (Bretagne)

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

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

    Déjà je pense qu'au niveau de ta base de données, tu aurais plus "propre", avec une troisième table.

    IdFormulaire IdTitre IdChamps
    1 1 2
    1 1 3

    Ainsi ta table champs n'aura pas n champs Nom identique.
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Par défaut
    Bonjour, merci pour ta réponse.

    Pourquoi rajouté un idFormulaire (qui au passage est la même chose qu' idTitre)?
    Personnellement je ne vois pas l'intérêt d'une troisième table mais je t'en prie, explique moi.

    Sinon pour mon problème de départ, tu y vois une solution?

    Merci encore.

  4. #4
    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 : 33
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Billets dans le blog
    1
    Par défaut
    L'intérêt est déviter la redondance d'informations, mais après libre à toi !

    Et où souhaites tu récupèrer l'id_tire? je n'ai pas bien compris.
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Par défaut
    En fait, j'ai 2 pages pour la création de formulaire, la première, tu lui donnes un titre et tu valides, ce qui t'amène sur la deuxième page où tu peux rajouter des champs.

    En fait ce que je veux, c'est récupérer la dernière id_titre de la première page pour l'utiliser pour la 2ième (ça fait office de création).

    On vient de me conseiller "mysqli_insert_id".

    Merci encore.

Discussions similaires

  1. Récupérer valeurs d'une colonne sans doublons
    Par paflolo dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 17/10/2006, 14h19
  2. récupérer valeur d'une page à l'autre
    Par Echizen1 dans le forum Access
    Réponses: 1
    Dernier message: 24/09/2006, 11h10
  3. récupérer valeurs d'une liste
    Par Pitou5464 dans le forum Access
    Réponses: 7
    Dernier message: 07/09/2006, 19h02
  4. Récupérer valeur dans une BD
    Par Matmal11 dans le forum Linux
    Réponses: 6
    Dernier message: 05/09/2006, 16h28
  5. récupérer valeurs d'une liste déroulante
    Par karidrou dans le forum Access
    Réponses: 5
    Dernier message: 13/01/2006, 09h31

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