Problème liste déroulante et BDD

Résolu
lecjoh59 Messages postés 84 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai un petit soucis avec un code PHP et HTML. Le problème est : je n'arrive pas à enregistrer les données de la liste déroulante dans la BDD.
PS : Je suis débutant.
Voici mes codes html et php

<head>
        <meta charset="utf-8" />
        <title>Inscription enfant</title>
    </head>

    <body>
    <form method="POST" action="inscription_enfant.php">
 <p>
       <label for="nom">Nom :</label>
       <input type="text" name="nom" id="nom" />
       
       <br></br>
    
       <label for="prenom">Prenom :</label>
       <input type="text" name="prenom" id="prenom" />

    <br></br>
    
    <label for="nom_ecole">Ecole :</label>
  <select id='nom_ecole' onChange='nom_ecole();'>
  <option value=0>Charles Perrault</option>
  <option value=1>Charles Robert</option>
  <option value=2>Groupe Champ Fleuri</option>
  </select>

  <br></br>
  
 <FORM>
  <INPUT TYPE="submit" NAME="submit" VALUE=" Envoyer ">
 </FORM>
 </body>


error_reporting(E_ALL);
  
    if(isset($_POST['submit']))
    { 
    $bdd = new PDO('mysql:host=localhost;dbname=projet;charset=utf8', 'root', '');
      try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=projet;charset=utf8', 'root', '');
        $req = "INSERT INTO inscription_enfant (nom, prenom, nom_ecole)";
        $req .= " VALUES ";

        $req .= "(:nom, :prenom, :nom_ecole)";
        $stmt = $bdd->prepare($req);
        $stmt>bindValue('nom',htmlentities(trim($_POST['nom'])),PDO::PARAM_STR);
        $stmt>bindValue('prenom',htmlentities(trim($_POST['prenom'])),PDO::PARAM_STR);
        $stmt>bindValue('nom_ecole',htmlentities(trim($_POST['nom_ecole'])),PDO::PARAM_STR);
    
        if (!$stmt->execute()) {
            throw new PDOException('insertion impossible');
        }
    }
    catch (Exception $e)
    {
        die('Erreur : ' . $e->getMessage());
    }
    }


Merci d'avance

9 réponses

Résumé de la discussion

Problème d'enregistrement des données d'une liste déroulante dans la base de données via PHP et HTML, lorsque les valeurs sélectionnées ne sont pas correctement stockées. Plusieurs éléments de réponse privilégient l'utilisation d'un champ id_ecole dans la table inscription_enfant et l'alimentation du SELECT via une liste des écoles issue d'une table ecoles, afin d'utiliser des jointures pour afficher le nom. D'autres remarquent que les valeurs des options doivent correspondre aux IDs et que l'insertion doit passer par des requêtes préparées pour éviter les erreurs et les injections.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Il faut, en PHP, lorsque tu utilises un SUBMIT .. mettre un attribut NAME à tes éléments html.
     <select id='nom_ecole' onChange='nom_ecole();'>
    

    A changer par :
     <select id='nom_ecole'   name='nom_ecole'  onChange='nom_ecole();'>
    


    De plus... prend l'habitude de récupérer PROPREMENT tes variables AVANT de les utiliser :
    et de séparer la connexion de ta BDD dans un fichier à part (pour ne pas avoir à le modifier partout le jour où tu installes ton script sur un autre serveur.... )

    Comme ceci :
    <?php
    // Fichier  cnxBDD.php de connexion à la BDD
    // qu'il suffit d'inclure lorsque tu en as besoin dans tes pages
    
    try{
      $bdd = new PDO('mysql:host=localhost;dbname=projet;charset=utf8', 'root', '');
    } catch (Exception $e){
      die('Erreur : ' . $e->getMessage());
    }
    ?>
    


    <?php
     //Affichage des erreurs PHP
     error_reporting(E_ALL);
    
     // connexion à la bdd
     require_once "cnxBDD.php";
     
     
     // Récupération "propre" des variables
     $nom = isset($_POST['nom']) ? htmlentities(trim($_POST['nom'])) : '';
     $nom = isset($_POST['prenom']) ? htmlentities(trim($_POST['prenom'])) : '';
     $nom = isset($_POST['nom_ecole']) ? htmlentities(trim($_POST['nom_ecole'])) : '';
    
      if(isset($_POST['submit'])) {  
        try {
          $req = "INSERT INTO inscription_enfant (nom, prenom, nom_ecole)
                    VALUES(:nom, :prenom, :nom_ecole)";
          $stmt = $bdd->prepare($req);
          $stmt>bindValue('nom',$nom),PDO::PARAM_STR);
          $stmt>bindValue('prenom',$prenom,PDO::PARAM_STR);
          $stmt>bindValue('nom_ecole',$nom_ecole,PDO::PARAM_STR);
        
          if (!$stmt->execute()) {
            throw new PDOException('insertion impossible');
          }
        }catch (Exception $e){
            die('Erreur : ' . $e->getMessage());
        }
      }
    


    Cordialement, 
    Jordane                                                                 
    0
    1. lecjoh59 Messages postés 84 Statut Membre
       
      Salut, merci de l'aide mais j'ai une toute petite erreur c'est que en choisissant l'école dans la liste, il enregistre un numéro au lieu du nom de l'école dans la BDD, comment ça se passe ?

      Merci d'avance
      0
    2. Pitet Messages postés 2845 Statut Membre 530
       
      Cela vient du fait que les attributs value de ton select sont des nombres et pas le nom de l'école :
      <select id='nom_ecole' name='nom_ecole' onChange='nom_ecole();'>
        <option value="Charles Perrault">Charles Perrault</option>
        <option value="Charles Robert">Charles Robert</option>
        <option value="Groupe Champ Fleuri">Groupe Champ Fleuri</option>
        </select>
      


      Bonne journée
      0
    3. lecjoh59 Messages postés 84 Statut Membre
       
      Merci pour l'aide mais en mettant tes valeurs, ça change rien. Cela ne viendrait pas de la base ? Parce que dans ma table, j'ai un id, nom, prenom et nom_ecole en varchar 30, cela serait - il ça ?
      0
    4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
       
      Cela vient des "value" dans tes balises OPTIONS
        <option value=0>Charles Perrault</option>
        <option value=1>Charles Robert</option>
        <option value=2>Groupe Champ Fleuri</option>
      

      ....
      Mais dans l'idéal tu ne stockes pas en toutes lettre le nom des écoles dans ta table "inscription_enfant" mais bien leurs ID.
      Pour cela.. .. tu créés une table "ecoles" (avec les champs : id, nom, adresse.....etc... ) dans laquelle tu listes les différentes écoles
      puis, tu alimentes ta balises SELECT via une requête sur cette Table.
      et ainsi.. dans les VALUE tu stocke les ID correspondant aux écoles

      Par la suite, lorsque tu auras besoin d'afficher les informations de ta table inscription_enfant et savoir le "nom" de l'école.. il te suffira de faire un JOINTURE entre ces deux tables.
      Un truc du genre :
      
      SELECT *
      FROM inscription_enfant I
      LEFT JOIN ecoles E ON  E.id = I.id_ecole
      
      

      Bien entendu, tu auras, au préalable, modifié ta table inscription_enfant en retirant le champ : nom_ecole et en y créant à la place, un champ id_ecole (de type INTEGER )

      Dis toi que quand tu conçois une Base de données .. il faut essayer au maximum de représenter chaque "objet" dans une table à part.
      Un Eleve est un objet
      L'inscription d'un Eleve est un objet
      L'école est un objet
      Le Pays est un objet
      La ville est un objet ..
      Etc.....

      Ensuite, tu ne travailles qu'avec les ID de ces différents objets et quelques jointures pour récupérer les informations correspondantes lorsque tu en as besoin.
      Cela permet de gagner en performance dans les requêtes, te permet d'être plus souple dans le contenu à afficher (par exemple... pour ajouter une nouvelle école dans ta liste... pas besoin de modifier ton code... tu n'as qu'à juste l'ajouter dans ta table )

      VOilou.
      Bonne continuation.
      0
    5. lecjoh59 Messages postés 84 Statut Membre
       
      Là j'ai modifier ma base, en créant une table école avec un id, et les 3 nom des écoles, mettre un id_ecole dans inscription_enfant. Par contre, je dois modifier quoi dans mon php pour récupérer l'id choisit ?
      Merci d'avance
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    1 - Je t'ai indiqué qu'il fallait séparer la connexion de ta BDD en le plaçant dans une page à part que tu n'auras qu'à inclure lorsque tu en auras besoin (comme je l'ai fait )
    2 - Je t'ai écrit un code en utilisant un ARRAY pour passer les variables... pourquoi as tu remis du BINDPARAM ?
    3 - Que vient faire ta boucle sur les écoles dans ce code ?????

    4 - Je t'ai écris du code .... il te suffit de le copier/coller TEL QUEL !!!!!!

    Donc... dans ta page PHP de traitement tu mets :
    
    <?php
     //Affichage des erreurs PHP
     error_reporting(E_ALL);
    
     // connexion à la bdd
     require_once "cnxBDD.php";
     
     
     // Récupération "propre" des variables
     $nom = isset($_POST['nom']) ? htmlentities(trim($_POST['nom'])) : '';
     $prenom = isset($_POST['prenom']) ? htmlentities(trim($_POST['prenom'])) : '';
     $id_ecole = isset($_POST['ecole']) ? htmlentities(trim($_POST['ecole'])) : '';
    
      if(isset($_POST['submit'])) {  
        try {
          $a_datas = array(":nom"=>$nom,":prenom"=>$prenom,":id_ecole"=>$id_ecole);
          $req = "INSERT INTO inscription_enfant (nom, prenom, id_ecole)
                    VALUES(:nom, :prenom, :id_ecole)";
          $stmt = $bdd->prepare($req);
          $stmt->execute($a_datas);
        }catch (Exception $e){
            echo "<br>Erreur : " . $e->getMessage();
            echo "<br> <b>Requete :<b><br> ".$req;
            echo "<br> params :<br><pre>";
            print_r($a_datas);
            echo "</pre>";
            exit();
        }
      }
    
    


    La page de ton formulaire html contient :
    
    
    <?php
     //Affichage des erreurs PHP
     error_reporting(E_ALL);
    
     // connexion à la bdd
     require_once "cnxBDD.php";
     
     
     //Récupération des écoles dans la BDD
      try{
      $sql = "SELECT * FROM ecole ";
      $stmt = $bdd->prepare($req);
      $res = $stmt->execute();
      //on stocke le résultat dans un array
      $arr_ecoles = $res->fetchall();
     }catch (Exception $e){
            die('Erreur : ' . $e->getMessage());
        }
    ?>
    
    <html>
    <head>
     <meta charset="utf-8" />
     <title>Inscription enfant</title>
    </head>
    
    <body>
      <form method="POST" action="inscription_enfant.php">
        <p>
        <label for="nom">Nom :</label>
        <input type="text" name="nom" id="nom" />
        <br></br>
        <label for="prenom">Prenom :</label>
        <input type="text" name="prenom" id="prenom" />
        <br></br>
        <label for="nom_ecole">Ecole :</label>
        <select id='ecole' name='ecole' onChange='nom_ecole();'>
        <?php
          if($arr_ecoles){
            foreach($arr_ecoles as $ECOLE){   
             echo "<option value='".$ECOLE['id']."'>".$ECOLE['nom']."</option>";
            }
          }
       ?>
        </select>
        <br></br>
        <input type="submit" name="submit" value=" Envoyer ">
      </form>
     </body>
     </html>
    

    => Bien entendu .. le nom de cette page se termine également par .php

    Et pour finir .. si tu ne l'as pas encore fait ... tu créés un fichier PHP avec le nom : cnxBDD.php
    dans lequel tu places :
    <?php
    // Fichier  cnxBDD.php de connexion à la BDD
    // qu'il suffit d'inclure lorsque tu en as besoin dans tes pages
    
    try{
       $bdd = new PDO('mysql:host=localhost;dbname=projet;charset=utf8', 'root', '');
    } catch (Exception $e){
       die('Erreur : ' . $e->getMessage());
    }
    ?>
    
    0
    1. lecjoh59 Messages postés 84 Statut Membre
       
      Merci, je vais tout copier - coller.
      0
    2. lecjoh59 Messages postés 84 Statut Membre
       
      J'ai tout changer mais en notant 127.0.0.1/inscription_enfant.php il n'y a rien qui s'affiche.
      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
       
      inscription_enfant.php ... c'est le nom de la page contenant ton formulaire HTML ?
      Je ne pense pas...
      vu que cette page... c'est celle utilisée dans ton FORM
      <form method="POST" action="inscription_enfant.php">
      

      .... donc normal que ça n'affiche rien vu que tu n'aies pas passé par le formulaire......!!!!!!!
      0
    4. lecjoh59 Messages postés 84 Statut Membre
       
      Merci c'était juste une erreur d'innatention, par contre, dans la liste déroulante des écoles je n'ai aucune école, faut que je rajoute les valeurs et les noms ?
      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
       

      je n'ai aucune école, faut que je rajoute les valeurs et les noms ?

      Non... normalement ça se fait automatiquement...
      Tu as bien nommé la table ecole (sans accent) ??
      Peux tu nous montrer la structure de ta table ?
      0
  3. lecjoh59 Messages postés 84 Statut Membre
     
    <?php
    
     error_reporting(E_ALL);
    
     require_once "cnxBDD.php";
     
      try{
      $sql = "SELECT * FROM ecole ";
      $stmt = $bdd->prepare($req);
      $res = $stmt->execute();
      $arr_ecoles = $res->fetchall();
     }catch (Exception $e){
            die('Erreur : ' . $e->getMessage());
        }
    ?>
    
    <html>
    <head>
     <meta charset="utf-8" />
     <title>Inscription enfant</title>
    </head>
    
    <body>
    <form method="POST" action="traitement_enfant.php">
        <p>
        <label for="nom">Nom :</label>
        <input type="text" name="nom" id="nom" />
        <br></br>
        <label for="prenom">Prenom :</label>
        <input type="text" name="prenom" id="prenom" />
        <br></br>
        <label for="nom_ecole">Ecole :</label>
        <select id='ecole' name='ecole' onChange='nom_ecole();'>
    	<option value =1>Charles Perrault</option>
    	<option value=2>Charles Robert</option>
    	<option value=3>Groupe Champ Fleuri</option>
        <?php
          if($arr_ecoles){
            foreach($arr_ecoles as $ECOLE){   
             echo "<option value='".$ECOLE['id']."'>".$ECOLE['nom']."</option>";
            }
          }
       ?>
        </select>
        <br></br>
        <input type="submit" name="submit" value=" Envoyer ">
    </form>
     </body>
    


    
     error_reporting(E_ALL);
    
     require_once "cnxBDD.php";
     
     $nom = isset($_POST['nom']) ? htmlentities(trim($_POST['nom'])) : '';
     $prenom = isset($_POST['prenom']) ? htmlentities(trim($_POST['prenom'])) : '';
     $id_ecole = isset($_POST['ecole']) ? htmlentities(trim($_POST['ecole'])) : '';
    
      if(isset($_POST['submit'])) {  
        try {
          $a_datas = array(":nom"=>$nom,":prenom"=>$prenom,":id_ecole"=>$id_ecole);
          $req = "INSERT INTO inscription_enfant (nom, prenom, id_ecole)
                    VALUES(:nom, :prenom, :id_ecole)";	
          $stmt = $bdd->prepare($req);
          $stmt->execute($a_datas);	  
        }catch (Exception $e){
            echo "<br>Erreur : " . $e->getMessage();
            echo "<br> <b>Requete :<b><br> ".$req;
            echo "<br> params :<br><pre>";
            print_r($a_datas);
            echo "</pre>";
            exit();
        }
      }
    
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Que viennent faire ces lignes
      <option value =1>Charles Perrault</option>
      	<option value=2>Charles Robert</option>
      	<option value=3>Groupe Champ Fleuri</option>
      

      dans ton code ?????


      Retires les !
      0
    2. lecjoh59 Messages postés 84 Statut Membre
       
      En les retirant, il n'y a aucune valeur dans la liste aussi.
      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
       
      Le fichier qui contient ton formulaire html ... il se nomme comment ? Il finit bien par ".php" ??

      Que donne ce code :
      <?php
       error_reporting(E_ALL);
       //connexion à la BDD
       require_once "cnxBDD.php";
       
       try{
        $sql = "SELECT * FROM ecole ";
        $stmt = $bdd->prepare($req);
        $res = $stmt->execute();
        $arr_ecoles = $stmt->fetchAll();
      	
      	//le temps des tests :
      	echo "<pre>";
      	print_r($arr_ecoles);
      	echo "</pre>";
      	
       }catch (Exception $e){
         die('Erreur : ' . $e->getMessage());
       }
      ?>
      
      <html>
      <head>
       <meta charset="utf-8" />
       <title>Inscription enfant</title>
      </head>
      
      <body>
        <form method="POST" action="traitement_enfant.php">
          <p>
          <label for="nom">Nom :</label>
          <input type="text" name="nom" id="nom" />
          <br></br>
          <label for="prenom">Prenom :</label>
          <input type="text" name="prenom" id="prenom" />
          <br></br>
          <label for="ecole">Ecole :</label>
          <select id='ecole' name='ecole'>
          <?php
            if($arr_ecoles){
              foreach($arr_ecoles as $ECOLE){   
               echo "<option value='".$ECOLE['id']."'>".$ECOLE['nom']."</option>";
              }
            }
         ?>
          </select>
          <br></br>
          <input type="submit" name="submit" value=" Envoyer ">
        </form>
      </body>
      </html>
               
      
      
      0
    4. lecjoh59 Messages postés 84 Statut Membre
       
      En le nommant en .php, il y a ça en erreurs :

      Notice: Undefined variable: req in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projet\inscription_enfant.php on line 9

      Fatal error: Call to a member function fetchall() on a non-object in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projet\inscription_enfant.php on line 11
      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
       
      Désolé...
      Modifie la ligne :
      $stmt = $bdd->prepare($req);
      

      Par :
      $stmt = $bdd->prepare($sql);
      
      0
  4. lecjoh59 Messages postés 84 Statut Membre
     
    Photo :

    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Pour la structure de ta table :
      Le champ ID : OK

      Mais ensuite.... Je t'ai dit de mettre un champ NOM ... où est-il ????
      A la place... toi ... tu as créé autant de "champs" ... que d'ecoles.... ce n'est pas comme ça que fonctionne une BDD !!!!!!!!!

      Au niveau de la structure de ta table , tu devrais avoir simplement comme champs :
      ID (auto incrémenté / clé Primaire )
      NOM varchar(256)


      Puis ... DANS la table .... les données :
      1 Charles Perrault
      2 Charles Robert
      3 Groupe Champ Fleuri
      0
    2. lecjoh59 Messages postés 84 Statut Membre
       
      Quand tu parles dans la table, ça marche comment ?
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
         
        Ben.... de la même façon que ta table inscription_enfant .....

        La table inscription_enfant ....
        elle contient les champs : nom prenom id_ecole ....
        et DEDANS ... tu as bien des VALEURS ....
        NON ?????
        0
    3. lecjoh59 Messages postés 84 Statut Membre
       
      Bah oui, donc dans ecole, je met 3 champ nom avec comme valeur le nom des écoles ?
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
         
        NONNNNNN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

        Prenons un autre exemple ..... tu connais EXCEL ???
        Dans Excel .. tu as des colonnes ... ( les colonnes.... c'est tes "champs" de ta BDD )
        Par exemple... dans la colonne "A" .. tu mets l' ID ( 1 , 2 , 3 .....)
        Dans la colonne "B" tu places les noms des écoles ....
        ===>> sur une ligne tu as donc : un ID ... puis un nom d'école
        puis à la ligne suivante... un autre ID ... puis une autre ecole....
        etc....


        Si tu ne comprends pas ça ... il va sérieusement falloir que tu commences par reprendre les BASES ( le BaBa ) de ce que sont les Bases de données.... et leur utilisation !!!!!!
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Regardes :

    Par exemple... j'ai une table contenant des champs : ID CHAMP CHAMP2 TYP



    Dans cette table .. j'ai des données :


    Facile non ???

    0
    1. lecjoh59 Messages postés 84 Statut Membre
       
      Mais là il me dit entrer une longueur valide pour le champ nom
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
         
        Peux tu me montrer la STRUCUTE de ta table corrigée suite à mes remarques ?
        Quelle "taille" as tu mis pour le champ NOM ?
        Quel texte essayes tu d'y mettre ?
        0
    2. lecjoh59 Messages postés 84 Statut Membre
       
      Taille champ nom : 256
      J'eesaye de emttre Charles Perrault...
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
         
        Et quel "type" de champ as tu choisi ?
        Peux tu nous mettre une capture écran lorsque tu rencontres ce message d'erreur ??
        0
  7. lecjoh59 Messages postés 84 Statut Membre
     
    Photo

    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      ....heu..... tu as vu que là ... tu essayes de saisie un texte dans la zone "Taille/Valeur" ???
      Cette zone sert à DEFINIR la"taille" du champ .... pas y mettre des données !
      Dans cette zone là .. tu dois mettre 256 par exemple....

      Ensuite ... pour remplir ta TABLE tu vas devoir aller dans l'onglet "INSERER" !!!!
      0
  8. lecjoh59 Messages postés 84 Statut Membre
     
    Comme ça ?

    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      vouiiiiiii ........ \o/
      :-)
      0
  9. lecjoh59 Messages postés 84 Statut Membre
     
    C'est ça exactement ?

    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Parfait.
      0
    2. lecjoh59 Messages postés 84 Statut Membre
       
      Maintenant que les noms sont rentrés, j'ai plus rien à modifier ?
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
         
        Ben... je ne sais pas ...
        Tu as testé ton code pour voir ??
        0
  10. lecjoh59 Messages postés 84 Statut Membre
     
    Il me fait ça et dans la BDD j'ai pas le nom de l'école :

    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       

      dans la BDD j'ai pas le nom de l'école

      C'est à dire ???
      Dans quelle table ???
      Qu'est-ce que la table contient ?
      Quelle est sa structure ??


      Pour ce qui est de l'affichage sur ta page... lui me semble bon (au vu du code que nous y avons mis )
      0
    2. lecjoh59 Messages postés 84 Statut Membre
       
      En fait, moi je voudrais pas l'id dans la base mais le nom de l'école
      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
       
      Non..
      Le principe ( question de performances....) c''est de ne mettre que l' ID.....

      Ensuite... si tu veux récupérer le contenu de la table... tout en ayant le nom de l'école correspondnat à l' ID .. il suffit de faire une JOINTURE.

      Testes la requete suivante tu comprendras (j'espère... )
      SELECT *
      FROM inscription_enfant  I
      LEFT JOIN ecole E  ON E.id = I.id_ecole
      
      0
    4. lecjoh59 Messages postés 84 Statut Membre
       
      Faut la mettre dans la page inscription ou traitement ?
      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > lecjoh59 Messages postés 84 Statut Membre
       
      ..... Pour l'instant... il faut la mettre nul part !!!!!

      Je te l'ai donné pour que tu la testes DIRECTEMENT dans ta BDD (en passant par l'onglet SQL de ton phpmyadmin par exemple )
      0