DELETE de plusieurs lignes après une recherche [Résolu]

Messages postés
33
Date d'inscription
vendredi 14 avril 2006
Statut
Membre
Dernière intervention
24 juin 2008
- - Dernière réponse : mattarius
Messages postés
33
Date d'inscription
vendredi 14 avril 2006
Statut
Membre
Dernière intervention
24 juin 2008
- 21 avril 2006 à 12:46
Bonjour à tous, je bosse sur un projet de site avec
une partie privée et une liste d'utilisateurs d'environ 150 personnes,
et j'ai un problème sur la partie admin' du site.

J'ai créé une page de recherche d'utilisateurs en
PHP qui permet aux webmestre du site de les afficher par nom, prenom
etc... sans passer par la BDD, j'ai créé en face de chaque utilisateur
un lien qui permet de supprimer l'utilisateur en question, et
j'aimerais faire une fonction pour effacer tous les utilisateurs qui
s'affichent après la recherche ( ce qui est interressant par exemple
pour supprimer tous les utilisateurs chaque année puisqu'il s'agit d'un
site de formation universitaire ).

Je pensais à récuperer tous les id des utilisateurs
qui répondent à la recherche et les inscrire dans un array avec une
boucle while($resultat=mysql_fetch_object($requete))

puis avec une autre boucle dans le fichier "toutsupprimer.php" faire
mes requetes DELETE en recuperant les id contenus dans l'array. Le
problème est que je ne trouve pas comment ajouter une valeur à un
tableau array en PHP avec à une boucle.

J'espère être à peu près clair, merci de votre aide.
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
3
Merci
Non en gros pour tes checkbox :

ensuite en php :

<?php
if(isset($_POST['check']) AND is_array($_POST['check']))
{
$requete=' DELETE FROM utilisateurs WHERE id IN(SELECT id FROM utilisateurs WHERE id=';

$i=0;

foreach($_POST['check'] AS $valeur)
{
if($i===0)
{
$requete.=$valeur;
}
else
{
$requete.=','.$valeur;
}
}

$requete.=')';

et ensuite le mysql_connect, mysql_select_db et mysql_query, le tout fermé par un mysql_close.
}
?>

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 127 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Anthomicro
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
0
Merci
Salut,

tu peux utiliser une requête du style DELETE FROM utilisateurs WHERE id IN(id1,id2,etc...)

si tu sélectionnes directement tes utilisateurs tu peux faire ceci :

DELETE FROM utilisateurs WHERE id IN(SELECT id FROM utilisateurs WHERE condition=machin)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Commenter la réponse de cs_Anthomicro
Messages postés
33
Date d'inscription
vendredi 14 avril 2006
Statut
Membre
Dernière intervention
24 juin 2008
0
Merci
Ok, merci je vais essayer ça, par contre d'habitude
j'execute mes requêtes en executant le script php d'une autre page
(avec le action="mapage.php" et le bouton submit), mais là visiblement
il me faudra l'executer sur la même page, est-ce que je peux faire ça
avec un lien (qui execute la commande et qui ne renvoie pas sur une
autre page) ou même un bouton, parce qu' on est pas systématiquement
obligé de vouloir supprimer les utilisateurs, c'est qu'une possibilité.

Merci d'avance
Commenter la réponse de mattarius
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
0
Merci
Oui bah pour faire ça avec un bouton (et des cases à cocher je présume) ? faut récupérer les valeurs des cases à cocher, ce sont ces valeurs qui iront dans le IN

(en gros tu génères ta requête dynamiquement)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Commenter la réponse de cs_Anthomicro
Messages postés
33
Date d'inscription
vendredi 14 avril 2006
Statut
Membre
Dernière intervention
24 juin 2008
0
Merci
Ok, merci beaucoup pour ton aide...
Commenter la réponse de mattarius
Messages postés
33
Date d'inscription
vendredi 14 avril 2006
Statut
Membre
Dernière intervention
24 juin 2008
0
Merci
Alors ça avance mais j'ai encore
un "petit" problème, je récupère la valeur des id sur chaque ligne
utilisateur et je la met dans le "value" du checkbox :



iduser." name='checkbox ".$compteur." '>



maintenant est-ce qu'il existe une requete du genre

DELETE FROM utilisateurs WHERE id IN(SELECT id FROM utilisateurs WHERE id=document.checkbox.value)



Mon problème est que selon la recherche de l'utilisateur, il n'y aura jamais le même nombre de ligne (petite précision)



Voilà sinon si quelqu'un à une autre idée ou un tuto, j'ai un peu de mal là...

Merci.
Commenter la réponse de mattarius
Messages postés
33
Date d'inscription
vendredi 14 avril 2006
Statut
Membre
Dernière intervention
24 juin 2008
0
Merci
Jte remercie, ça à pas l'air bien compliqué mais je débute, je vais esayer de m'en sortir..
Commenter la réponse de mattarius