supprimer enregistrement d'une table

Eléphant du PHP | 335 Messages

20 mai 2005, 16:30

Bonjour,

Alors voila j'ai fait un tableau qui affiche une table.
Voici les lignes qui remplissent mon tableau :
  echo "<tr>";
  echo "<td><input type='checkbox' name='CaseCocher' value='item1'></td>";
  echo "<td>".$a_result["jour"]."</td>"; 
  echo "<td>".$mois."</td>"; 
  echo "<td>".$a_result["annee"]."</td>"; 
  echo "<td>".$a_result["heure"]."</td>"; 
  echo "<td>".$a_result["type"]."</td>"; 
  echo "<td>".$a_result["sla"]."</td>"; 
  echo "<td>".$a_result["total"]."</td>"; 
  echo "<td>".$a_result["description"]."</td>"; 
  echo "<td>".$a_result["action"]."</td>";
  echo "<td>".$a_result["owner"]."</td>";  
  echo "</tr>"; 
Sur chaque ligne se trouve une case a cocher.
Je voudrais que l'utilisateur puisse choisir les lignes qu'il veut et qu'il clique sur supprimer et que les lignes soit supprimé de la table (DELETE FROM ... WHERE ...=...)

Comment dois je procéder?

Merci

Eléphant du PHP | 335 Messages

20 mai 2005, 16:59

Ce que je voudrais savoir, c'est comment récupérer le chois de l'utilisateur?

Si l'utilisateur clique sur une ou plusieurs cases a cocher, comment faire mon delete from table where jour=..., mois=..., annee=...

Comment faire pour récupérer les valeurs de la ligne qu'il a cocher?

Merci

Mammouth du PHP | 983 Messages

20 mai 2005, 22:36

<?php
if(isset($_POST))
{
//connexion à ta bd ici
   
    $query = 'DELETE FROM tatable WHERE id IN ('
    //construction de la liste des identifiants à supprimer
    $liste = '';    
    foreach($_POST['CaseCocher'] as $id)
        $liste.= $id.',';

    //suppression de la dernière virgule
    $liste = substr($liste,0,6,-1);
   
    $query.=$liste.')';
    $res = mysql_query($query);
    ...
}

<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
...
...
  echo "<tr>";
  echo "<td><input type='checkbox' name='CaseCocher[]' value='$a_result["id"]'></td>";
  echo "<td>".$a_result["jour"]."</td>"; 
  echo "<td>".$mois."</td>"; 
  echo "<td>".$a_result["annee"]."</td>"; 
  echo "<td>".$a_result["heure"]."</td>"; 
  echo "<td>".$a_result["type"]."</td>"; 
  echo "<td>".$a_result["sla"]."</td>"; 
  echo "<td>".$a_result["total"]."</td>"; 
  echo "<td>".$a_result["description"]."</td>"; 
  echo "<td>".$a_result["action"]."</td>";
  echo "<td>".$a_result["owner"]."</td>";  
  echo "</tr>"; 
...
...
</form>
Il faut spécifier dans la valeur de ton checbox l'identifiant de l'enregistrement. De plus, il faut que ta checkbox soit un tableau (d'où l'ajout de [] à son nom).

Ensuite, tu recuperes les données dans la variable $_POST (=méthode utilisée pour envoyer les informations spécifiée dans la balise <form>). ;)