Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/03/2011, 10h37   #1
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Par défaut Comment supprimer plusieurs champs dans un formulaire?

Bonjour à tous,

J'ai crée un formulaire d'où je souhaite pouvoir effacer plusieurs "entrées" à la fois mais malheureusement avec le code mis en place je ne peux le faire qu'un par un.

Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<form action="/mapage.php" method="post" >
<input type="checkbox" value="ma_valeur" id="mon_id" name="mon_id" />
<input type="submit" name="supprimer" value="Supprimer" />
</ form>
 
Dans mapage.php
if ( isset($_POST['mon_id'])) {
$sMonId = ereg_replace("'", "`", $_POST['mon_id'] );
 
$sqlQuery =
" DELETE FROM matable WHERE MON_ID = '$sMonId' ";
mysql_query($sqlQuery);
checkSqlError($sqlQuery);
}
De quelle manière dois-je m'y prendre pour pouvoir en supprimer plusieurs à la fois ?

Merci beaucoup par avance,

Aurélien
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 11h15   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonjour,

Code html :
1
2
3
4
5
6
7
<form action="/mapage.php" method="post" >
<input type="checkbox" value="ma_valeur" name="mon_id[]" />
<input type="checkbox" value="ma_valeur1" name="mon_id[]" />
<input type="checkbox" value="ma_valeur2" name="mon_id[]" />
<input type="checkbox" value="ma_valeur3" name="mon_id[]" />
<input type="submit" name="supprimer" value="Supprimer" />
</ form>
Code :
1
2
3
4
5
6
7
8
9
10
<?php
if ( isset($_POST['mon_id'])) {
	foreach($_POST['mon_id'] as $id){
		$sMonId = ereg_replace("'", "`", $id );
		$sqlQuery =" DELETE FROM matable WHERE MON_ID = '$sMonId' ";
		mysql_query($sqlQuery);
		checkSqlError($sqlQuery);
	}
}
?>
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 13h33   #3
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
En une seule requête :
Code :
1
2
3
4
5
if (isset($_POST['mon_id'])) {
       $tblId = array_map('intval', $_POST['mon_id']);
$sqlQuery =" DELETE FROM matable WHERE MON_ID IN (" . implode(',', $tblID) . ')';
      mysql_query($sqlQuery);
}
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 14h56   #4
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Merci pour vos réponses.

Sabotage : ton code me renvoi une erreur :

Code :
1
2
3
4
5
6
 
Warning: array_map() [function.array-map]: Argument #2 should be an array in /homez.318/site/www/mapage.php on line 10
 
Warning: implode() [function.implode]: Invalid arguments passed in /homez.318/site/www/mapage.php on line 11
 
Warning: Cannot modify header information - headers already sent by (output started at /homez.318/site/www/mapage.php:10) in /homez.318/site/www/mapage.php on line 24
As-tu une idée d'où cela pourrait venir ?

Merci pour votre aide.

Aurélien
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 14h59   #5
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
As-tu modifié le name des input ?
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 15h07   #6
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Non mais j'ai essayé en le modifiant et ça ne corrige pas le problème.
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 15h09   #7
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
A priori il y aurait une erreur de syntaxe :

Code :
1
2
3
4
5
6
7
Warning: array_map() [function.array-map]: Argument #2 should be an array in /homez.318/site/www/mapage.php on line 10
 
Warning: implode() [function.implode]: Invalid arguments passed in /homez.318/site/www/mapage.php on line 11
 
DELETE FROM matable WHERE ID IN ()
à causé une erreur sur le serveur mySql:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 15h11   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
fait au début de ton code :

Code :
echo '<pre>', print_r($_POST, true), '</pre>';
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 15h23   #9
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Voila le résultat :

Code :
1
2
3
4
5
Array
(
    [supprimer] => Supprimer
    [mon_id] => 2020
)
A priori mon post fonctionne bien.
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 15h32   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
non t'as pas fait comme andry.aime t'as dis

name="mon_id[]"
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 15h37   #11
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Citation:
Envoyé par AurelienNF Voir le message
Non mais j'ai essayé en le modifiant et ça ne corrige pas le problème.


EDIT: owned par stealth35
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 15h41   #12
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
J'avais effectivement bien essayé mais il y avait toujours une erreur.
Néanmoins mea culpa puisqu'à priori il fallait le faire.

Par contre une erreur persiste:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Array
(
    [supprimer] => Supprimer
    [mon_id] => Array
        (
            [0] => 2020
        )
)
 
Warning: implode() [function.implode]: Invalid arguments passed in /homez.318/site/www/mapage.php on line 13
 
DELETE FROM matable WHERE ID IN ()
à causé une erreur sur le serveur mySql:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 16h11   #13
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Essaie avec
Code :
$sqlQuery =" DELETE FROM matable WHERE MON_ID IN (" . implode(',', $_POST['mon_id']) . ')';
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 16h27   #14
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
MERCI MERCI MERCI !!!

Ça fonctionne super bien.

A bientôt.

Aurélien
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h25.


 
 
 
 
Partenaires

Hébergement Web