javo222
Messages postés4Date d'inscriptionvendredi 28 juillet 2006StatutMembreDernière intervention 4 mai 2009
-
24 avril 2009 à 15:13
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 2012
-
4 mai 2009 à 13:42
Bonjour,
Je rencontre un petit soucis concernant la suppression de ligne en php.
J'ai un tableau de plusieurs colonnes et plusieurs lignes et dans la dernière colonne de chaque ligne un bouton "supprimer".
La suppression marche (même dans la BDD) mais c'est toujours ma
dernière ligne qui est supprimée (et non celle en face du bouton comme
je le voudrais)...
echo "<tr>
<td>$data3[ID]</td> //A CHAQUE LIGNE TOUS LES ID DIFFERENTS S'AFFICHENT CORRECTEMENT
<td>$data3[chp1]</td>
<td>$data3[chp2]</td>
<td>$data3[chp3]</td>
<td>
</td> // BOUTON SUPPRIMER
</tr>
puis la page RecapSupp.php :
$ID=$_POST["ID"];
echo $ID; // ici c'est l'ID de la dernière ligne qui est affiché :s
$query4 = "DELETE FROM matable WHERE ID=$ID";
mysql_query($query4) or die(mysql_error());
Vonscott
Messages postés61Date d'inscriptionvendredi 6 janvier 2006StatutMembreDernière intervention19 septembre 2011 24 avril 2009 à 16:43
Salut,
Effectivement cela ne peut pas marcher. Deja un submit doit etre contenu dans un <form>
Essaye plutot quelque chose comme ca à la place du ';
$i= 0;
whil e ($data3 = mysql_fetch_assoc($sql3)) {
//ton code jusqu'a $data3[ID]</italique>" />
$i++;
}
et dans ton fichier RecapSupp.php
foreach($_POST as $indice=>$valeur)
{
$query4 = "DELETE FROM matable WHERE ID=$valeur"; mysql_query($query4) or die(mysql_error()); }
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 4 mai 2009 à 13:42
Salut,
C'est bien normal que ça ne fonctionne pas car tes hidden portent le même nom et c'est donc le dernier qui prime.
Il y a plusieurs manières de faire. Dans la majorité des cas mettre des boutons à chaque fin de ligne n'est pas le plus approprié, mais ça dépend de ton appli.
Dans l'idée de Vonscott :
Tu remplaces :
=>
Tu mets 1 (ou plusieurs) bouton submit "supprimer les enregistrements sélectionnés"
Tu récupères ensuite, dans RecapSupp.php, un tableau contenant toutes les checkbox des lignes cochées, de la forme :
Array
(
[delete] => Array
(
[0] => 'id_1ere_ligne_a_supp', [1] => 'seconde ligne à supp', [2] => etc... )
)
Il ne te reste alors plus qu'à mettre ta requête de suppression dans une boucle.