DELETE de plusieurs lignes après une recherche

Résolu
mattarius Messages postés 33 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 24 juin 2008 - 20 avril 2006 à 11:14
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.

7 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 avril 2006 à 18:26
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>
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 avril 2006 à 11:27
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>
0
mattarius Messages postés 33 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 24 juin 2008
20 avril 2006 à 14:13
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
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 avril 2006 à 14:24
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>
0

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

Posez votre question
mattarius Messages postés 33 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 24 juin 2008
20 avril 2006 à 14:32
Ok, merci beaucoup pour ton aide...
0
mattarius Messages postés 33 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 24 juin 2008
20 avril 2006 à 16:59
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.
0
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
Jte remercie, ça à pas l'air bien compliqué mais je débute, je vais esayer de m'en sortir..
0
Rejoignez-nous