Effectuer une action sur

[Résolu]
Signaler
Messages postés
53
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
14 juin 2006
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour!
Voila j'ai un petit probléme, j'aimerai ajouter des cases à cocher en face de chaque Client enregistré dans ma base de données lorsque je les affiche (j'utilise une requete en php pour les afficher, comment ajouter les cases?).
Puis, si la case est selectionné, je souhaiterai supprimer ce client.
Je ne sais pas vraiment comment m'y prendre, si quelqu'un pouvait me donner un pti coup de main ca m'aiderai pas mal.
Merci à tous.

8 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut ;-)



bah lorsques tu affiches un client (j'image la requête) :



précision : le champ id est un champ de type numérique et pas text ou
varchar (on prendra par exemple un type SMALLINT pour 10000 clients par
exemple)



echo '<form action="tapage.php" method="post">


';



$requete=mysql_query('SELECT id FROM clients');

while($r=mysql_fetch_row($requete))

{

echo '

';

}



echo '

';



ensuite lorsque tu coches les cases et que tu cliques sur le bouton
valider (de type submit), tu récoltes les infos sur la page php :



<?php

if(isset($_POST['suppression']))

{

$tableau=$_POST['check'];

$i=0;

$requete='DELETE FROM clients WHERE id=';



while(list($nom, $valeur) = each($_POST['check']))

{

if(is_numeric($valeur))

{

if($i==0)

{

$requete.=$valeur;

}

else

{


$requete.=' AND id='.$valeur;

}

$i++;

}

}

$connexion=mysql_connect('hote','user','passe') OR die('Connexion impossible');

mysql_query($requete) OR die('Erreur MySQL');

mysql_close($connexion) OR die('Fermeture de la connexion impossible');

}

?>



a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Si la requête ne fonctionne pas remplace le bloc if par ça :



if($i==0)

{

$requete.='\''.$valeur.'\'';

}

else

{

$requete.=' OR id=\''.$valeur.'\'';

}


a ++


Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
Messages postés
53
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
14 juin 2006

Salut!
Merci mais ca marche pas tout à fait.
Tu m'as dit d'utiliser un champ de type numérique pour le champ id, or, je ne sais pas si c'est à cause de "Auto increment" ou pas mais ca ne le prend pas.

Et puis dans la page ou j'aimerai afficher les clients avec les cases à cocher, je n'ai que les cases à cocher.
Merci de ton aide tchao.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Normal...




$requete=mysql_query('SELECT id,nomclient FROM clients');

while($r=mysql_fetch_row($requete))

{

echo '',stripslashes($r[1]),'

';

}


voilà, si tu rajoutes un champ nommé "nomclient" et contenant le nom du client ça l'affichera ;-)



Ensuite pour ce qui est de la boucle je t'ai donné un exemple plus bas pour corriger le bug




<?php

if(isset($_POST['suppression']))

{

$tableau=$_POST['check'];

$i=0;

$requete='DELETE FROM clients WHERE id=';



while(list($nom, $valeur) = each($_POST['check']))

{

if(is_numeric($valeur))

{

if($i==0)
{


$requete.='\''.$valeur.'\'';
}
else
{


$requete.=' OR
id=\''.$valeur.'\'';
}


$i++;

}

}

$connexion=mysql_connect('hote','user','passe') OR die('Connexion impossible');

mysql_query($requete) OR die('Erreur MySQL');

mysql_close($connexion) OR die('Fermeture de la connexion impossible');

}

?>




Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
Messages postés
53
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
14 juin 2006

Hello!!

Tout marche, sauf la boucle qui permet de supprimer les clients
sélectionnés grace aux checkbox. Ca m'affiche: Erreur MySQL lorsque je
clique sur le bouon "Supprimer les cases cochées" qui qppelle cette boucle.

J'espère que tu pourras me donner un conseil. Merci pour tout.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Tu peux faire un echo $requete après la boucle (et avant le mysql_query) et me donner le texte affiché ?



merci

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
Messages postés
53
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
14 juin 2006

Oui ca me donne ca :

DELETE FROM clients WHERE id='4'Erreur MySQL

Merci j'espere qu'on va finir par y arriver!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Hum, je vois pas, la requête est correcte pourtant...



regarde que ta table clients existe, que le champ id existe...

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)