Modification de la base de donnée

Résolu
Sihemnecib Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Sihemnecib Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis débutante en php et j'ai une liste des client a afficher je veut maitre devant chaque élément de cette liste un bouton modifier pour que je peut modifier son dossier qui existe déjà dans ma base de donne
Voici mon code pour l'affichage et ça marche bien


<?php
			   
			  $dbuser = "root";
$dbpassword = "";
$dbname = "test";
$dbhost = "localhost";
//Connection
$mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbname);
if (mysqli_connect_error()) {
    printf("Connection à la base de donnée impossible: ", mysqli_connect_error());
    exit();
}
$alert = '';

			   $sql=" SELECT * FROM patient" ;
			 $reqet = mysqli_query($mysqli, $sql);

			   while($row=mysqli_fetch_object($reqet))
			   {
			   
			       echo "
				   <tr>
				        <td>$row->nom_patient</td>
						 <td>$row->Prenom_patient </td>
						   <td>$row->sexe </td>
						   <td>$row->date_ness </td>
						  <td>$row->adresse </td>
						   <td> $row->email</td>
						    <td>$row->num_telephone </td>
							 <td> $row->commentaire</td>
							
				         
				  </tr>";
				         
			   }
 $sel=" SELECT * FROM patient" ;
$req = mysqli_query($mysqli, $sel);
$count = mysqli_num_rows($req);

echo"<html> <font color=black> <center> Total:  </font> <font color=red size=18> <br/>   $count  </center> </font>

 <html>";
			   ?>


Svp comment je v'ai l'ajouter j'ai besoin d'aide.

2 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Déjà ... il y a des petites améliorations à apporter à ton code
    Premièrement ... ne colles pas le code de connexion à ta BDD dans toutes tes pages.....
    Places ce code dans un fichier à part que tu n'auras plus qu'à importer lorsque tu en as besoin.
    Par exemple :
    <?php 
    //----------------------------------------------//
    //Fichier cnxBDD.php
    //----------------------------------------------//
    $dbuser = "root";
    $dbpassword = "";
    $dbname = "test";
    $dbhost = "localhost";
    
    //Connection
    $mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbname);
    if (mysqli_connect_error()) {
        printf("Connection à la base de donnée impossible: ", mysqli_connect_error());
        exit();
    }
    ?>
    


    Et dans le code de tes pages, tu n'auras qu'à mettre :
    require_once "cnxBDD.php";
    


    Ensuite, pourquoi mettre deux fois la même requête ??
     $sql=" SELECT * FROM patient" ;
    


    Et maintenant .. ta question :

    je veut maitre devant chaque élément de cette liste un bouton modifier

    Il te faut donc, lorsque tu boucles sur les résultats de ta requête et là où tu créés les lignes de ton tableau... y placer ton "bouton" modifier.
    Je t'invite à utiliser un lien et une variable GET.
    while($row=mysqli_fetch_object($reqet)) {
    			   
      echo "
         <tr>
          <td><a href='modif_patient.php?id=".$row->id."'>Modifier</a>
          <td>".$row->nom_patient."</td>
          <td>".$row->Prenom_patient." </td>
          <td>".$row->sexe." </td>
          <td>".$row->date_ness." </td>
          <td>".$row->adresse." </td>
          <td>".$row->email."</td>
           <td>".$row->num_telephone." </td>
          <td>".$row->commentaire."</td>
        </tr>";
             
    }
    

    NB: J'ai supposé que dans ta table "patients" tu avais bien mis un champ auto-incrémenté du nom de "id" (sinon.. à toi de le changer)

    Pour finir, tu te créés une page : modif_patient.php
    Dans laquelle tu mettras un formulaire pour modifier les données du patient.
    Comme tu peux le voir, on y envoie la variable ID (voir mon "nb" précédent).
    A partir de cet "ID" tu peux récupérer dans la page modif_patient.php les informations du patient à modifier.

    <?php
    // PAGE : modif_patient.php
    
    //------------------------------------------------------------------------------//
    //connexion à la bdd
    //------------------------------------------------------------------------------//
    require_once "cnxBDD.php";
    
    //------------------------------------------------------------------------------//
     //récupération de la variable ID (envoyée via l'url en GET )
    //------------------------------------------------------------------------------//
    $id = !empty($_GET['id']) ? $_GET['id'] : NULL;
    
    //------------------------------------------------------------------------------//
    // Ici tu placeras le code de traitement du formulaire de modification de ton patient :
    //------------------------------------------------------------------------------//
    
    //récupération "propre" des variables POST
    $id_patient = isset($_POST['id_patient']) ? $_POST['id_patient'] : NULL;
    $nomP = isset($_POST['nomP']) ? $_POST['nomP'] : NULL;
    //etc....
     
    
    //puis tu mettras la requête de mise à jour ici
    if($id_patient ){
      $sql = " UPDATE patient 
                       SET nom_patient = '$nomP'
                             ,prenom_patient = '$prenomP'
                     WHERE id = '$id_patient'";
      mysqli_query($mysqli, $sql);
    
    }
    
    
    //------------------------------------------------------------------------------//
    // Affichage du formulaire de modifications
    //------------------------------------------------------------------------------//
    // récupération des informations du patient : 
    if($id){
       $sql=" SELECT * FROM patient WHERE id='".$id."'" ;
       $reqet = mysqli_query($mysqli, $sql);
    
        //puis ici tu créés le formulaire avec les infos du patient :
        echo '<form name='modifP' action='' method='post'>";
           echo "<input type='hidden' name='id_patient' value='$id'>";
           echo "<input type='text' name='nomP' value='".$row->nom_patient."'>";
          echo "<input type='text' name='prenomP' value='".$row->Prenom_patient."'>";
    
        //etc...
    
        echo "<input type='submit' name='valider' value='valider'>";
        echo "</form>";
    }else{
      echo "Erreur : Aucun ID passé en paramètre";
    }
    
    


    Voilou ... je te laisse compléter.

    0
  2. Sihemnecib Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonsoir merc pour ta réponse je refait tous le code comme tu dit.
    Mais je bloque dans ce point ou tu me dit:
    //------------------------------------------------------------------//

    // Ici tu placeras le code de traitement du formulaire de modification de ton patient :
    //

    //------------------------------------------------------------------//

    Pardon je ne comprend pas qu'est ce que Je vais placer
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      C'est ce que j'ai commencé à mettre en dessous
      0
    2. Sihemnecib Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Le serveur me répond qu'il y'a une erreur au niveau de


      echo "<input type='text' name='prenomP' value='".$row->Prenom_patient."'>";


      Me dit: undifined variable:row in..... Et autre dans le même ligne: trying to get property of non-object
      Je ne comprend pas cette erreur
      0
    3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Oui oups... j'ai oublié le fetch.
      0
    4. Sihemnecib Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Comment et ou j'ajout le fetch svp?
      0
    5. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > Sihemnecib Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
       
      Comment ça comment ?
      Comme tu l'as fais dans ton autre page bien sûr :
      $row=mysqli_fetch_object($reqet)


      Et pour le où ... et bien... AVANT les lignes indiquées en erreur (donc avant le echo "<form...." )
      0