Effectuer une action sur

Résolu
cs_Sandy084 Messages postés 53 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 14 juin 2006 - 20 janv. 2005 à 17:54
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 25 janv. 2005 à 18:03
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

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 janv. 2005 à 18:45
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)
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 janv. 2005 à 19:29
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)
0
cs_Sandy084 Messages postés 53 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 14 juin 2006
21 janv. 2005 à 20:58
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.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
21 janv. 2005 à 21:08
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Sandy084 Messages postés 53 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 14 juin 2006
24 janv. 2005 à 15:57
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.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
24 janv. 2005 à 19:46
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)
0
cs_Sandy084 Messages postés 53 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 14 juin 2006
25 janv. 2005 à 10:47
Oui ca me donne ca :

DELETE FROM clients WHERE id='4'Erreur MySQL

Merci j'espere qu'on va finir par y arriver!
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
25 janv. 2005 à 18:03
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)
0
Rejoignez-nous