supprimer selection checkbox

supprimer selection checkbox - PHP - Programmation

Marsh Posté le 20-03-2006 à 18:31:42    

salut à tous
 
Voila j'ai un tableau qui affiche le nom,..., de mes client; au bout de celui-ci, j'ai une checkbox

Citation :


<td ><? echo $row["id_client"]; ?></td>
 <td width=""><? echo $row["nom"]; ?></td>
 <td width=""><? echo $row["prenom"]; ?></td>
 <td width=""><? echo $row["email"]; ?></td>
 <td><input type="checkbox" name="check_client[]" value="<?$id_client;?>"</td>
<INPUT TYPE="submit" name="supp_client" value="supprimer ce client">


 
Je voudrais en cochant un client et en cliquant sur le bouton, que le client soit supprimé. J'ai essayé avec ça mais ça ne marche pas:

Citation :


if(isset($supp_client))
{
foreach ($_POST['check_client'] as $id_client)
{
$supp_client=mysql_query("DELETE FROM client WHERE check_client = $id_client" );
}
}


Merci  

Reply

Marsh Posté le 20-03-2006 à 18:31:42   

Reply

Marsh Posté le 20-03-2006 à 19:07:48    


En jetant un coup d'oeil rapide à ton code :  
DELETE FROM client WHERE id_client = $id_client

Reply

Marsh Posté le 20-03-2006 à 19:10:58    

smaragdus a écrit :

En jetant un coup d'oeil rapide à ton code :  
DELETE FROM client WHERE id_client = $id_client


 
slt,
j'ai déjà essayé, mais ça me supprime le premier de la liste...et non celui coché

Reply

Marsh Posté le 20-03-2006 à 19:21:34    

Si ça ne fonctionne pas avec id_client, c'est pas en prenant le champ check_client que ça va mieux marcher :lol:
 
Comprends-tu ce que tu fais au moins ?
Comment est définie ta table ?

Reply

Marsh Posté le 20-03-2006 à 19:28:50    

ben là est tout le probleme...
J'essaye de comprendre, et quand je pense avoir compris et bien ça ne marche pas!!! donc j'essaye un peu tout pour voir en me disant que peut être...
 
Bref ma table est une table client avec une cle primaire (id_client) et des champs (nom, prenom, email...)

Reply

Marsh Posté le 20-03-2006 à 19:39:58    

C'est pas comme ça qu'on programme proprement, c'est pas de la cuisine.
Commence par ouvrir une doc :
www.php.net
www.mysql.org [:dawa]

Reply

Marsh Posté le 20-03-2006 à 21:25:21    

merci mais j'avais deja regarde...et je pensais que là c'était suffisement avancé pour que l'on puisse m'aider....
bon ben je continuerai a cherhcer par moi même
Merci quand même

Reply

Marsh Posté le 21-03-2006 à 01:32:56    

Bon, je suis pas madame soleil, mais si en se basant sur la requête de Smaragdus, tu supprimes le premier de la liste et non celui que tu coches, faudrait peut être voir du côté du formulaire...
 
J'avoue qu'un truc comme

Code :
  1. <td><input type="checkbox" name="check_client[]" value="<?$id_client;?>"</td>


 
me pousse à demander  
1. si tu n'as pas oublier un echo dans la ligne
2. si ton $id_client est défini quelque part, sachant que tu utilises $row['id_client'] un peu plus haut.
 
Voilà, on va dejà attendre les réponses à ces deux questions :D

Reply

Marsh Posté le 21-03-2006 à 11:19:57    


slt,
 
il me manque un echo dans quelle ligne?  
tu veux dire: <td><input type="checkbox" name="check_client[]" value="<?echo '$id_client';?>"</td> ??
 
normalement mon id_client est defini car je le recupere de mon formulaire (en POST)

Reply

Marsh Posté le 21-03-2006 à 11:45:10    

Si tu fais  value="<?echo '$id_client';?>", tu vas te retrouver avec value="$id_client" dans ton HTML... (les variable entre simples quotes ne sont PAS interpretees en php).
 
La syntaxe correct est value="<?=$id_client?>" ou value="<? echo $id_client; ?>"

Message cité 1 fois
Message édité par Woutcha le 21-03-2006 à 11:45:40
Reply

Marsh Posté le 21-03-2006 à 11:45:10   

Reply

Marsh Posté le 21-03-2006 à 12:04:33    

Woutcha a écrit :

Si tu fais  value="<?echo '$id_client';?>", tu vas te retrouver avec value="$id_client" dans ton HTML... (les variable entre simples quotes ne sont PAS interpretees en php).
 
La syntaxe correct est value="<?=$id_client?>" ou value="<? echo $id_client; ?>"


 
ok mais si j'enlève les quote ça peut marcher?

Reply

Marsh Posté le 21-03-2006 à 12:16:24    

vichenzo a écrit :

ok mais si j'enlève les quote ça peut marcher?


 
A ben oui que ca peut marcher... les quotes (simples ou doubles) sont utilisees en php pour delimiter une chaine de caractere.
Ici tu veux juste afficher une variable. Donc il n'y a absolument pas besoin de quotes.
 
note : le seul cas ou tu trouveras une variable entre quote c'est avec des DOUBLES QUOTES. Dans ce cas les
noms de variable sont interpretes et remplaces par la valeur de cette variable.
ex :  
$nom = 'toto';
print "Mon nom est $nom";
 

Reply

Marsh Posté le 21-03-2006 à 15:06:49    

j'ai retiré les quote est j'ai mis dans mon formulaire:
<td><input type="checkbox" name="check_client[]" value="<?echo $id_client;?>"</td>
 
mais il ne se passe rien :-(

Reply

Marsh Posté le 21-03-2006 à 15:20:55    

vichenzo a écrit :

j'ai retiré les quote est j'ai mis dans mon formulaire:
<td><input type="checkbox" name="check_client[]" value="<?echo $id_client;?>"</td>
 
mais il ne se passe rien :-(


 
Avec le code complet de la page ce serait beaucoup plus simple de t'aider.

Reply

Marsh Posté le 21-03-2006 à 16:03:11    

vichenzo a écrit :

slt,
 
il me manque un echo dans quelle ligne?  
tu veux dire: <td><input type="checkbox" name="check_client[]" value="<?echo '$id_client';?>"</td> ??
 
normalement mon id_client est defini car je le recupere de mon formulaire (en POST)


 
Donne nous le code complet de ton formulaire tel que tu l'as actuellement. Un copier/coller si possible, histoire d'éviter ce echo complètement absent de la ligne que je citais plus haut.
 
Et je veux savoir d'où sort ce $id_client dans le formulaire, parce que lui, là, je le vois défini nulle part et que tu te sers d'un $row['id_client'] pour identifier ton client 4 lignes plus haut, ça me semble bizarre ce bout de code :D

Reply

Marsh Posté le 21-03-2006 à 17:00:06    

voilà le code de mon formulaire:

Citation :

$req_client="SELECT * FROM client ORDER BY nom";
$res_client=mysql_query($req_client);
$nb_rows=@mysql_num_rows($res_client);
 
?>
<FORM action="index.php?page=liste_client" method=POST>
<table>
   <tr>
  <td class=soustitre>Liste des clients</td>
 </tr>
 <tr>
  <td height="15"></td>
 </tr>
</table>
<table border=1>
   <tr>
 <td width="">nombre</td>
 <td width="">id client</td>
 <td width="">nom</td>
 <td width="">prenom</td>
 <td width="">email</td>
   </tr>
 <?
 $n=1;
   while ($row=mysql_fetch_array($res_client))
 {?>
   <tr>
    <td width=""><? echo $n++; ?></td>
    <td width=""><? echo $row["id_client"]; ?></td>
 <td width=""><? echo $row["nom"]; ?></td>
 <td width=""><? echo $row["prenom"]; ?></td>
 <td width=""><? echo $row["email"]; ?></td>
 <td><input type="checkbox" name="check_client[]" value="<?echo $id_client;?>"</td>
 </tr>
 <?}?>
 
</table>
<INPUT TYPE="submit" style="background-color:#FFFFCC" name="supp_client" value="supprimer ce(s) client(s)">
</FORM>


Reply

Marsh Posté le 21-03-2006 à 17:07:49    

Donc voilà, on a donc bien aucune initialisation de $id_client, qui selon ta table devrait plutôt être $row['id_client'] non ?
 
//edit : tips de débugage : regarde le code html généré pour ton formulaire, normalement (à moins qu'il en manque encore un morceau  :ange: ), toutes tes checkbox ont la même valeur dans l'attribut value, ce qui est évidement un soucis.


Message édité par naceroth le 21-03-2006 à 17:10:40
Reply

Marsh Posté le 21-03-2006 à 18:08:40    

voila le seul bout de code qui manque sur ma page..;mais je l'avai deja mis plus haut...là tu as ma page complete

Citation :

<?
if(isset($supp_client))
 {
  $suppression_client=mysql_query("DELETE FROM client WHERE id_client='$check_client'" );
 }
 
?>


Message édité par vichenzo le 21-03-2006 à 18:11:30
Reply

Marsh Posté le 21-03-2006 à 18:12:56    

Réponse donnée plus haut, donc.

Reply

Marsh Posté le 21-03-2006 à 18:23:56    

alors je dois etre un peu long a la detente ou vraiment tres mauvais mais toutes les reponses qui ont ete propose je les ai teste...et ca ne marche pas...

Reply

Marsh Posté le 21-03-2006 à 18:27:59    

Code :
  1. <td><input type="checkbox" name="check_client[]" value="<? echo $row['id_client']; ?>"</td>


 
C'était testé ?

Reply

Marsh Posté le 21-03-2006 à 18:47:05    

ok c cool ça marche...merci beaucoup d'avoir passe autant de tps pour mes questions :)
 
MERCI!!!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed