Suppression d'entré mysql dans un tableau

Petit nouveau ! | 8 Messages

20 mars 2009, 17:42

ReBonjour,

Deux post en une journée et oui je galère.

Tout d'abords je fais un tableau dans lequel je charge toute mes entrés mysql par ID. Jusque la pas de problème.
Ce que je voudrais c'est rajouter un bouton "delete" à la fin de chaque ligne du tableau afin de pouvoir supprimer la ligne correspondante.

J'avais pensé a faire une variable que j'incrémenterais dans la boucle mais le problème est que si une entré est supprimé, la variable ne correspondra plus à la bonne ligne.
Comment faire pour dire a mysql(en gros) : mysql_query("DELETE FROM client WHERE id= "l'ID de la ligne que tu viens de charger")

Voici le code :
<?php
		mysql_connect('localhost', 'user', 'mdp')or die('Could not connect');
		mysql_select_db('ambio')or die('Could not selectdb');
		mysql_query("SET NAMES UTF8");
		$client= mysql_query(" SELECT * FROM client ORDER BY ID");
		
	?>
    <table width="1000" border="2">
 		 <tr>
    		<td>Numero de client</td>
    		<td>Raison Social</td>
    		<td>Nom</td>
    		<td>Prenom</td>
    		<td>Telephone</td>
   			<td>Mobil</td>
    		<td>Code Postal</td>
    		<td>Ville</td>
  		</tr>
 
<?
		$id='1';
		while ($view=mysql_fetch_array($client))
		{
         
		 
		 ?>
         <tr>
    		<td><? echo $id; ?></td>
    		<td><? echo $view['raison']; ?></td>
    		<td><? echo $view['nom'];  ?></td>
    		<td><? echo $view['prenom'] ; ?></td>
      	  	<td><? echo $view['tel'];  ?></td>
       		<td><? echo $view['portab'];  ?></td>
   	 		<td><? echo $view['cp'];  ?></td>
   			<td><? echo $view['ville'] ; ?></td>
            <td><input type="button" value="Delete" onclick="<? mysql_query("DELETE FROM client WHERE id='$idencour'")?>">
  		</tr>
	
<?  

		} 
                $idencour=$id++;
		mysql_close();
?>
En vous remerciant

Eléphanteau du PHP | 15 Messages

20 mars 2009, 17:56

Avec le onclick, il te faut utiliser du javascript.

Si tu n'es pas habitué au js, et si tu n'as pas envie de t'y lancer de suite, je te conseil plutôt de faire un lien vers une page qui contiendra ton script de suppression, et une fois ton script fini fait une redirection sur ta page contenant le tableau.

Par contre, dans ton lien, il te faut récupérer l'id client contenu dans ta table :
<?php
        mysql_connect('localhost', 'user', 'mdp')or die('Could not connect');
        mysql_select_db('ambio')or die('Could not selectdb');
        mysql_query("SET NAMES UTF8");
        $client= mysql_query(" SELECT * FROM client ORDER BY ID");
        
    ?>
    <table width="1000" border="2">
          <tr>
            <td>Numero de client</td>
            <td>Raison Social</td>
            <td>Nom</td>
            <td>Prenom</td>
            <td>Telephone</td>
               <td>Mobil</td>
            <td>Code Postal</td>
            <td>Ville</td>
          </tr>
 
<?
        $id=$idencour=1;
        while ($view=mysql_fetch_array($client))
        {
         
         
         ?>
         <tr>
            <td><? echo $id; ?></td>
            <td><? echo $view['raison']; ?></td>
            <td><? echo $view['nom'];  ?></td>
            <td><? echo $view['prenom'] ; ?></td>
                <td><? echo $view['tel'];  ?></td>
               <td><? echo $view['portab'];  ?></td>
                <td><? echo $view['cp'];  ?></td>
               <td><? echo $view['ville'] ; ?></td>
            <td><a href="delete_client.php?id=<?php echo $view['ID']?>">Delete</a></td>
          </tr>
    
<?  

        } 
                $idencour=$id++;
        mysql_close();
?>
Par contre, avec le script que tu nous as déposé, je ne vois pas l'intérêt de ton $idencour

ViPHP
AB
ViPHP | 5818 Messages

20 mars 2009, 19:22

Sinon à l'intérieur de ta boucle, tu peux faire un formulaire dans ton td de suppression (la méthode post étant plus sécurisée que l'envoi de l'id via GET)
<td>
<form action = "#"  method = "post">
<input type = "hidden" name = "id_suppr" value = "<?php echo $view['ID']?>" />
<input type = "submit" name = "Delete" value = "Delete" />
</form>
</td>
Ensuite dans la partie php de cette même page tu fais
 if (isset($_POST['id_suppr'],$_POST['Delete']))
{
mysql_query("DELETE FROM client WHERE id='".$_POST['id_suppr']."'");
}