Récupéré les donnée et les modifier

Par hdfs99, il y a 8 ans


Bonsoir à tous,

je suis débutant en PHP et je voudrais modifier une table mais avant ça je veux récupéré les donne de cette table et après les modifier.

voici ma table employe(id_em,cin,nom_em,id_grade,id_affectation,adress)

premier chose j'ai récupéré les donnée en choisissant un id employé voici le code:

<form method="post"action="recherche.php"> <select name="id_em" > <?php try { $bdd=new PDO('mysql:host=localhost;dbname=gestion;charset=utf8','root',''); } catch (Exception $e) { die('ERREUR : '.$e->getMessage()); } $res= $bdd->query('select * from employe'); while ($ligne=$res->fetch()) {?> <option > <?php echo $ligne['id_em']; ?> </option> <?php } $res->closeCursor(); ?> </select> <input type="submit" value="chercher"> </form>

après le clic sur le bouton une autre page s'affiche avec les information de employé:

<form method="post"action="update.php"> <?php include'fr.php'; $requete=$bdd->prepare("select employe.cin,employe.nom_em,grade.libelle,affectation.nom_a,employe.adress from employe,grade,affectation where employe.id_grade=grade.id and employe.id_affectation=affectation.num and employe.id_em=?"); $requete->execute(array($_POST["id_em"])); if(isset($_POST['id_em'])){ while($res1=$requete->fetch()){ ?> <input type="text"name="cin" value="<?php echo $res1["cin"] ?>"> </br> <input type="text"name="nom_em" value="<?php echo $res1["nom_em"] ?>"> </br> <input type="text"name="id_grade" value="<?php echo $res1["libelle"] ?>"> </br> <input type="text"name="id_affectation" value="<?php echo $res1["nom_a"] ?>"> </br> <input type="text"name="adress" value="<?php echo $res1["adress"] ?>"> </br> <?php }} $requete->closecursor(); ?> </br> </br></br> </select> <input type="submit"value="ok"> </form>

je clique sur le bouton modifier de la page 2 ce code appel la fonction modifier:

<?php include'manager.php'; $manager=new manager(); $manager->update1(); ?>

et voici la fonction:

public function update1(){ if(isset($_POST["cin"])and isset($_POST["nom_em"])and isset($_POST["id_grade"])and isset($_POST["id_affectation"])and isset($_POST["adress"])and isset($_POST["id_em"])){ $this->st=$this->pdo->prepare("update employe set cin=?, nom_em=? ,id_grade=? , id_affectation=? , adress=? where id_em=?"); return $this->st->execute(array($_POST["cin"], $_POST["nom_em"],$_POST["id_grade"], $_POST["id_affectation"], $_POST["adress"], $_POST["id_em"])); } }

le problème rien ne change aucun modification et le grand problème l y a aucun erreur.

pour l'information j'ai déjà tester ma fonction il fonctionne très bien.

Et merci vos aide

2 réponses

SLK, il y a 8 ans

Salut,

Je n'en suis pas sur du tout mais,
le 1er form, envoie à "recherche.php" la variable $_POST['id_em'], (donc si on fait isset($_POST['id_em'] ça renvoie true, d'accord)
mais le 2ème form n'envoie pas à "update.php" de variable $_POST['id_em'].
Je me demande du coup si isset($_POST['id_em'] renvoie true ou false ("sur update.php")

Si tu modifies comme ça, on voit quel echo ? Et que donne le var_dump($_POST['id_em']) ?

public function update1() { var_dump($_POST['id_em']); if (isset($_POST["cin"]) and isset($_POST["nom_em"]) and isset($_POST["id_grade"]) and isset($_POST["id_affectation"]) and isset($_POST["adress"]) and isset($_POST["id_em"])) { echo 'IF'; $this->st=$this->pdo->prepare("update employe set cin=?, nom_em=?, id_grade=?, id_affectation=?, adress=? where id_em=?"); return $this->st->execute(array($_POST["cin"], $_POST["nom_em"], $_POST["id_grade"], $_POST["id_affectation"], $_POST["adress"], $_POST["id_em"])); } else { echo 'ELSE'; } }

Si c'était bien ça le problème, une solution pourrait être de rajouter un input caché dans le 2ème form :

... <input type="hidden" name="id_em" value="<?= $_POST['id_em'] ?>"> ...
hdfs99, il y a 8 ans

Merci j'ai deja trouver la solution merci beaucoup SLK