afficher et modifier une données dans la bd

Rechercher

afficher et modifier une données dans la bd

Par zacharie  -  2 reponses  -  Le 01/08/2016 17:43  -  Editer  - 

Bonjour je suis début dans le monde du php, cependant j'ai un gros souci;
j'ai un sript qui permet :

  1. une inscription avec insertion dans la base de données si tout est bien
  2. après validation une page de confirmation des donnée (page tampons)qui afiche les donnée que l'utilisateur a entrée lui demandans si ='il veut les conserver ou les modifiés

mon problè je ne sais pas dans quel fichier il faut placer la requete pour la modification
voici le fichier d'inscription et de traitement log_in.php

    <?php  

        $errors = array();  


        if(!empty($_POST)){  

            if(empty($_POST['pseudo_eleve'])){  
             $errors['speudo_eleve']= "Les caractères utilisés ne sont pas autorisés";     
             echo '<div id="erreurs_1">'. $errors['speudo_eleve'].'</div/>';  

            }  
            if(empty($_POST['tonnom'])){  
                  $errors['tonnom'] = "Nom pas valide";  
                 echo '<div id="erreurs_2">'. $errors['tonnom'].'</div>';  

            }  
            if(empty($_POST['tonnom'])){  
                $errors['tonprenom'] = "Prenom pas valide";  
                echo '<div id="erreurs_3">'. $errors['tonprenom'].'</div>';  

            }  
            if(empty($_POST['taclasse'])){  
                $errors['taclasse'] = "Choisir une Classe";  
                echo '<div id="erreurs_4">'. $errors['taclasse'].'</div>';  

            }  
            if(empty($_POST['date_naiss'])){  
                $errors['date_naiss'] = "Date non valide";  
                echo '<div id="erreurs_5">'. $errors['date_naiss'].'</div>';  

            }  
            if(empty($_POST['lieu_naiss'])){  
                $errors['lieu_naiss'] = "Entrez une lieu valide";  
               echo '<div id="erreurs_6">'. $errors['lieu_naiss'].'</div>';  

            }  
            if(empty($_POST['mdp']) || $_POST['mdp'] != $_POST['mdp_conf']){  
                $errors['mdp'] = "Les mots de passe ne correspondent pas !";  
                echo '<div id="erreurs_7">'. $errors['mdp'].'</div>';  
            }  
            if(empty($_POST['taphoto'])){  

                $errors['taphoto'] = "les extensions autorisée gif.,.jpg, .png";  
                echo '<div id="erreurs_8">'. $errors['taphoto'].'</div>';  

            }  
            //echo '</div>';  
           /* if(empty($_FILES['taphoto'])){  
                $errors['taphoto'] = "télécharger un fichier";  

            }*/  
           // var_dump($errors);  
            if(empty($errors)){  


               try  
                {  
                   $pdo = new PDO('mysql:host=localhost;dbname=sup_affiche;charset=utf8', 'root', '');   
                }   
                catch (Exception $ex) {  
                    exit('ERROR : '. $ex->getMessage());  
                }  
                //inserer les infos dans le bd  
                $req = $pdo ->prepare("INSERT INTO eleve(tonnom, tonprenom, taclasse, date_naiss, Lieu_naiss, mdp, taphoto, pseudo_eleve) "  
                        . "VALUES(:tonnom, :tonprenom, :taclasse, :date_naiss, :lieu_naiss, :mdp, :taphoto, :pseudo_eleve)");  
                $req->execute(array(  
                        'tonnom' => $_POST['tonnom'],  
                        'tonprenom' => $_POST['tonprenom'],  
                        'taclasse' => $_POST['taclasse'],  
                        'date_naiss' => $_POST['date_naiss'],  
                        'lieu_naiss' => $_POST['lieu_naiss'],  
                        'taphoto' => $_POST['taphoto'],  
                        'pseudo_eleve' => $_POST['pseudo_eleve'],  
                        'mdp' => $_POST['mdp']   

                ));  

                 header('location: http://localhost/sup_affiche/web/confirmer.php');  
                //die('location :http://localhost/sup_affiche/web/confirmer.php');         

            }   


        }  
     ?>      
     <! DOCTYPE html PUBLIC "-//W3C//DTD WHMTL 1.0 strict//EN" "http ://www.W3.org/TR/xhtml//DTD/xhtml1-framset.dtd">   
    <html xmlns= "http ://www.w3.org/1999/xhtml" xml:lang="fr" lang ="fr">   
    <head>   
        <title>INSCIPTION</title>   
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!--  caractère spéciaux -->  
        <meta name ="keywords" lang ="fr" content = "from, discussion, logiciel, libre, PHP, mysql, xhtml, <meta charset="utf-8" />   
        <link rel="stylesheet" href ="http://localhost/sup_affiche/css/css_1.css" />   
            <link rel="icon" type="image/jpg" href="http://localhost/sup_affich/img/favicon.icon.jpg" />  
    </head>   
     <body>  
          <div id="header">  

         </div>   

         <h1>Vous êtes prier de remplir les champs ci-dessous pour pouvoir continuer</h1>  

         <div id="cadre_inscription">  
        <!--<div class="pour_tab">    -->  
        <form action ="http://localhost/sup_affiche/web/log_in.php" method ="post" enctype="multipart/form-data">   

            <table border ="0" width="auto" height ="auto">   
            <tr>   
            <td>   
                <label >Identifiant </label>   
            </td>   
            <td >   
            <input type="text" id ="zone" name="pseudo_eleve">   
            </td>  

                    <tr>   
            <td>   
                <label >Ton Nom </label>   
            </td>   
            <td >   
            <input type="text" id ="zone" name="tonnom" >   
            </td>  

            </tr>   
            <tr>   
            <td>   
            <label >Ton Prénom </label>   
            </td>   
            <td ><input type="text" id ="zone" name="tonprenom" >   
            </td>   

            </tr>      
            <tr>   
            <td>   
                <label >Ta Classe</label>   
            </td>   
                        <td>   
                        <select name="taclasse" placeholder="Choisi ta taclasse" >  
                            <option value=" ">--  CHOISIR  --</option>  
                            <option value="0">Sixième</option>  
                            <option value="1">cinquième</option>  
                            <option value="2">Quatrième</option>  
                            <option value="3">Troisième</option>  
                            <option value="4">Seconde</option>  
                            <option value="5">Seconde A4 All</option>  
                            <option value="6">Seconde A4 ESp</option>  
                            <option value="7">Première</option>  
                            <option value="8">Terminale</option>  
                        </select>   
            </td>  

            </tr>   

            <tr>   
            <td>   
            <label >Date de naissance  </label>   
            </td>   
            <td>   
            <input type="text" id ="zone" name="date_naiss" >   
            </td>   

            </tr>  
                    <tr>   
            <td>   
            <label >Lieu de naissance  </label>   
            </td>   
            <td>   
            <input type="text" id ="zone" name="lieu_naiss" />   
            </td>  

            </tr>  
            </tr>  
            <tr>   
            <td>   
                <label for="zone">Mot de passe </label>   
            </td>   
            <td>   
            <input type="password" id ="zone" name="mdp" >   
            </td>   

            </tr>   
                    <tr>  
                    <td>   
            <label for="zone">Retaper le Mot de passe </label>   
            </td>   
            <td>   
            <input type="password" id ="zone" name="mdp_conf" >   
            </td>  
                    </tr>  
                    <tr>   
            <td>   
                <label for="zone">Ta Photo  </label>   
            </td>   
            <td>   
                        <input type="text" id ="zone" name="taphoto" >   
            </td>   
                    </tr>   
                    <tr>   
                        <td><input type="hidden" id ="zone1" name="acces" ></td>  
                        <td><input type="submit" value ="Valider" id ="zone1" name="acces" ></td>  
             </tr>   
            </table>  

        </form>   


        <!--</div> &nbsp;&nbsp; -->  
         </div>  

          <div id="footer">  

            juste voir si il apparaît!  

         </div>   

       </body>  
    </html>  

le fichier de confirmation confimer.php

    <?php  



    ?>  
    <! DOCTYPE html PUBLIC "-//W3C//DTD WHMTL 1.0 strict//EN" "http ://www.W3.org/TR/xhtml//DTD/xhtml1-framset.dtd">   
    <html xmlns= "http ://www.w3.org/1999/xhtml" xml:lang="fr" lang ="fr">   
    <head>   
        <title>Confirmation</title>   
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!-- caractère spéciaux -->  
        <meta name ="keywords" lang ="fr" content = "from, discussion, logiciel, libre, PHP, mysql, xhtml, <meta charset="utf-8" />   
        <link rel="stylesheet" href ="http://localhost/sup_affiche/css/css_1.confirme.css" />   
            <link rel="icon" type="image/jpg" href="http://localhost/sup_affich/img/favicon.icon.jpg" />  
    </head>   

     <body>  
         <div id="header">  
            juste voir si il apparaît!  
         </div>     


         <?php  
         try  
            {  
                $pdo = new PDO('mysql:host=localhost;dbname=sup_affiche;charset=utf8', 'root', '');   
            }   
            catch (Exception $ex) {  
                 exit('ERROR : '. $ex->getMessage());  
            }  
            // afichaece des donnée entrée qui correspond à la dernière ligne de la table  
            $del = $pdo->query('SELECT * FROM eleve ORDER BY id_eleve DESC LIMIT 1');  
            while ($donnes = $del ->fetch()) {  
                ?>  

         <div id="cadre_confirme">  
             <table>  

                    <tr>  
                      <td><strong>Nom : </strong></td>  
                       <td><?php echo $donnes['tonnom']; ?></td>  
                    </tr>  
                    <tr>  
                        <td><strong>Prenom : </strong></td>  
                        <td><?php echo $donnes['tonprenom']; ?></td>  
                    </tr>   
                    <tr>  
                        <td><strong>Classe : </strong></td>  
                        <td><?php echo $donnes['taclasse']; ?></td>  
                    </tr>  

                    <tr>  
                         <td><strong>Date de naissance : </strong></td>  
                         <td><?php echo $donnes['date_naiss']; ?></td>  
                    </tr>  
                    <tr>  
                       <td><strong>Lieu de naissance : </strong></td>  
                       <td><?php echo $donnes['lieu_naiss']; ?></td>  
                     </tr>  
                     <tr>  
                        <td id ="zone1"><strong>Photo : </strong></td>  
                        <td><?php echo $donnes['taphoto']; ?></td>  
                    </tr>  
                    <tr>  
                        <td><a href="http://localhost/sup_affiche/web/modifier.php"><input type="submit" value="Modifier" id ="zone1" name="modif"></a></td>  
                        <td><a href="http://localhost/sup_affiche/web/gestion.php"><input type="submit" value="Confimer" id ="zone1" name="conf"></a></td>  
                    </tr>  

                 </table>  

         </div>  
         <h1>Bonjour ! <i><u> <?php echo $donnes['tonprenom']; ?></u></i>, les informations suivantes sont-elles correctes ?<br/>   
             si c'est le cas appuyez sur confirmez.</h1>  


    <?php  


                 }  




         ?>  






      <div id="footer">  
            juste voir si il apparaît!  
         </div>              

       </body>  
    </html>
 

Réponses apportées à cette discussion

Par Cyrano  -  Le 01/08/2016 22:04  -  Haut de page  - 

Salut,
il faudrait optimiser tout ça en séparant en plusieurs fichiers. Sommairement, l'idée est que le formulaire d'inscription devrait logiquement être le même que le formulaire de modification : dès lors, pourquoi faire deux fichiers ?

Mais du coup, on peut se demander s'il ne serait pas opportun d'utiliser le même fichier avec une alternative définissant si on affiche le formulaire pour créer une nouvelle fiche ou bien pour modifier une fiche existante.

Et poussons un peu plus loin : pourquoi utiliser un fichier distinct pour la confirmation ?

Donc voici ma suggestion : on va découper la page en trois parties :

  1. en-tête de la page;
  2. contenu principal de la page;
  3. pied de page;

Le contenu devra donc être défini selon les condition à vérifier, et sommairement, ça ressemblera à quelque chose comme ceci:

    <! DOCTYPE html PUBLIC "-//W3C//DTD WHMTL 1.0 strict//EN" "http ://www.W3.org/TR/xhtml//DTD/xhtml1-framset.dtd">   
    <html xmlns= "http ://www.w3.org/1999/xhtml" xml:lang="fr" lang ="fr">  
      <head>  
        <title>Confirmation</title>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
        <!-- caractère spéciaux -->  
        <meta name ="keywords" lang ="fr" content = "from, discussion, logiciel, libre, PHP, mysql, xhtml, <meta charset="utf-8" />     
        <link rel="stylesheet" href ="http://localhost/sup_affiche/css/css_1.confirme.css" />  
        <link rel="icon" type="image/jpg" href="http://localhost/sup_affich/img/favicon.icon.jpg" />  
      </head>  
      <body>  
        <div id="header">  
          juste voir si il apparaît!   
        </div>  
    <?php  
    // on vérifie s'il s'agit de la confirmation;  
    if(isset($_POST['acces']))  
    {  
        //..  
    }  
    // sinon on vérifie s'il s'agit de l'édition d'une fiche existante  
    elseif(isset($_GET['id_eleve']))  
    {  
        //..  
    }  
    // sinon il s'agit d'une création;  
    {  
        // ..   
    }  

    ?>  
        <div id="footer">  
          juste voir si il apparaît!   
        </div>  
      </body>  
    </html>  

Partant de là, il faut définir deux fichiers : un pour le formulaire, l'autre pour la confirmation et selon le résultat du test if/elseif/else, on définira lequel inclure.
Dans le cas où il s'agit du formulaire, il faudra alors éventuellement définir des variables pour pré-remplir au besoin les champs du formulaire.

Voilà, je te laisse réfléchir à la question, et si tu coinces encore, définis bien où tu bloques et je tâcherai d'aiguiller plus précisément.

 
Par zacharie  -  Le 02/08/2016 09:51  -  Haut de page  - 

ok Merci à toi cyrano je mets en pratique tes conseils et je te tien informer...

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |