Simplement que tu effaces ta ligne après l'affichage... Pour éviter d'avoir à réactualiser, tu n'as qu'à effectuer ta requête DELETE avant d'aller chercher tes données dans la table. Et dans ton exemple, tu recommence un nouveau champ POST à chaque boucle effectuée dans ton while. Ne suffierait-il pas de le déclarer qu'une seule fois, à l'extérieur de ta boucle ? Mettre des radio button règlerait la majeure partie du problème...
Ton code, en bref, deviendrait donc :
Ton code, en bref, deviendrait donc :
Code PHP :
<?php
// POST
echo '<form action="marche.php" method="post">';
// Tu affiches ici que l'entête de ta table !
echo '
<table>
<tr>
<td></td>
<td>Nom</td>
<td>Quantité</td>
<td>Prix</td>
</tr>
';
// Tes données effacées...
if (isset($_POST['ress']))
{
mysql_query ('DELETE FROM commerce WHERE id_commerce = "'.$_POST['ress'].'"');
}
// ----------------- boucle pr afficher toute les entrée de la table commerce ---------
$ress = mysql_query ('SELECT * FROM commerce');
// Tu débutes ensuite ta boucle !
while ($donnees = mysql_fetch_array ($ress))
{
$nom_res = $donnees['objet'];
$prix_res = $donnees['prix'];
$quantite_res = $donnees['quantite'];
$id_denre = $donnees['id_commerce'] ;
// -------tableau affichant toute les entrées -----------
echo '
<tr>
<td width="1"><input type="radio" name="ress" value="'.$donnees['id_commerce'].'"></td>
<td width="107">'.$nom_res.'</td>
<td width="181">'.$quantite_res.'</td>
<td width="132">'.$prix_res.'</td>
</tr>
';
}
//-- fin du If--------------
echo '</table><br /><br /><input type="submit" value="Achat">';
mysql_close();
Maintenant, si tu tiens à garder un bouton pour chaque achat, c'est toujours faisable bien sûr, tu n'as alors qu'à vérifier AVANT d'afficher si la donnée que tu t'apprêtais à afficher si elle doit être effacée ou non et, si elle doit être effacer, ne pas l'afficher, simplement. Quoi que beaucoup plus lourd...