Modification de la base de donnée

Résolu/Fermé
Sihemnecib Messages postés 15 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 17 avril 2016 - 17 avril 2016 à 13:26
Sihemnecib Messages postés 15 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 17 avril 2016 - 17 avril 2016 à 19:47
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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
17 avril 2016 à 15:27
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
Sihemnecib Messages postés 15 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 17 avril 2016
17 avril 2016 à 17:52
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
17 avril 2016 à 18:21
C'est ce que j'ai commencé à mettre en dessous
0
Sihemnecib Messages postés 15 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 17 avril 2016 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
17 avril 2016 à 18:34
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
17 avril 2016 à 18:52
Oui oups... j'ai oublié le fetch.
0
Sihemnecib Messages postés 15 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 17 avril 2016 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
17 avril 2016 à 19:06
Comment et ou j'ajout le fetch svp?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Sihemnecib Messages postés 15 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 17 avril 2016
17 avril 2016 à 19:36
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