bonjour
j'ai un code delete en php pdo, et tous me semble bien mais je ne comprend pas pourquoi elle ne fonctionne pas quand j'appuye sur le bouton ok qui est sensé être assurer que je veux supprimer ou non et m'aide à me rediriger vers header location alors que rien de cela ne se passe et il n'y a même pas d'erreur!!
voila mon code

<?php 
$hostdb = 'localhost';
$userdb = 'root';
$passdb = '';
$namedb = 'mfb';
try {
  $conn = new PDO("mysql:host=".$hostdb."; dbname=".$namedb."", $userdb, $passdb, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
  $conn->exec("SET CHARACTER SET utf8");
}
catch (PDOException $e) {
  echo 'La base de donnée n\'est pas disponible';
}

if(isset($_POST['fournisseur_id'])){
  $sql = 'DELETE FROM fournisseur WHERE fournisseur_id = :fournisseur_id';
  $query = $conn->prepare( $sql );
  if ($query == false) {
   print_r($conn->errorInfo());
   die ('Erreur prepare');
  }
  $res = $query->execute( array( ":fournisseur_id" => $_POST['fournisseur_id'] ) );
  if ($res == false) {
   print_r($query->errorInfo());
   die ('Erreur execute');
  }
  header('Location:fournisseur.php');
  exit();
}
  ?>
<form name="form" action="supprimefournisseur.php" method="POST" enctype="multipart/form-data" >
                <fieldset>
            <legend><em>Suppression d'un Fournisseur </em></legend>
            <table align="center">
            <tr>
            <td>
                    <label for="ChampFournisseur">ID du Fournisseur:</label>
                </td>
                <td>
<select name="FournisseurID">
    <?php
    $req = $conn->query('SELECT * FROM fournisseur ORDER BY fournisseur_id');
    while($donnees = $req->fetch())
    { ?>

         <option value="<?php echo $donnees['fournisseur_id']; ?>"><?php echo $donnees['fournisseur_id']; ?></option>
    <?php
    } ?>
</select>
</td>
</tr>
    <td></td>

<td>
        <form action="supprimefournisseur.php" method="POST">
            <input type="submit" name="bouton" value="OK" onclick="alert('Suppression avec succes');" style="background-color: black;
width: 100px;
height:30px;
border-radius: 6px;
color: white;
font-family: algerian;
text-align: center;" /> 
            <a href='fournisseur.php'><input class='button' type='button' value='Annuler' style="background-color: black;
width: 100px;
height:30px;
border-radius: 6px;
color: white;
font-family: algerian;
text-align: center;"></a>
        </form>
    </td>
</table>
        </fieldset>
    </form>
</td>
</table>

merci si quelqu'un à une idée de mon probleme

3 réponses


Bonjour,

Je vois deux erreurs potentielles :

  • Tu as deux balises ```
    <form>
  • Dans ta condition et ta requête tu accèdes à la variable $_POST['fournisseur_id'] hors dans ton code HTML, ta liste de fournisseur est identifié par l'attribut "name" "FournisseurID". Tu dois donc, soit remplacer tes $_POST['fournisseur_id'] par $_POST['FournisseurID'] soit remplacer l'attribut "name" de ton ```
    <select>

oui j'ai fait ce que tu as dis mais rien ne change!! :(

Bonjour,

Je vous invite à revoir la contruction d'un tableau, car il manque certaine balise.
De plus à la fin de votre table, vous fermez 2 fois les balises "< /form>" et "< /table>"