25. april 2005 - 09:52
Der er
14 kommentarer og 1 løsning
liste bruger og vælger hvilke man vil slette med kryds
hej jeg skal bruge et script hvor man kan slett bruger udfra angivet den bruger der skal slettes ved en checkboks..
Annonceindlæg fra Kingston Technology
25. april 2005 - 12:39
#1
Du kan godt lave det i php, men jeg foreslår at du bruger javascript til at samle de valgte brugere i f.eks. et array og så smider det videre til php... Pseudo-forløb: 1. Adm markerer de ønskede brugere og klikker på "Slet"-knappen. 2. Sletknappen udløser en onclick-funktion der tjekker hver checkbox om den er sat til 'on'. 3. Den samler alle markerede brugere i en string bestående af brugernes id'er. 4. Du åbner en ny url a la window.open('?delete=true&ids=1,2,3,4,5','_self'); 5. Nu åbnes samme side med variablen "delete" som er sat til true. Du tjekker øverst i dokumentet om denne delete er sat til true med en if-statement. 6. Du har også en string bestående af id'erne og du kan lave en mysql_query("DELETE FROM dintabel WHERE id = $ids"). (antaget at kører mysql self.)
25. april 2005 - 12:42
#2
hmm har ikke sover i 28 timer og rookie indenfor php--- jeg gik igang med denne her men kan ikke få det til at spille <?php include 'db.inc'; if($sletden){ mysql_query("DELETE FROM bruger WHERE idbruger = '$id'"); echo ("Slettet!"); } $sporg = mysql_query("select Fornavn,,efternavn, user_name from users2 where aut ='$id' "); if ($antal>=0){ while ($brug = mysql_fetch_array($sporg)) { extract($brug); echo ("$user_name $fornavn $efternavn") header("Brugernummer: $idbruger<INPUT TYPE="checkbox" NAME="$id"></br>"); <input type='submit' name='sletden'>"; } } } ?>
25. april 2005 - 13:09
#3
Hej igen Tjek dine tabelnavne og field-navne! Prøv det her: <?php include 'db.inc'; // TJEKKER OM DER SKAL SLETTES if($delete){ $ids = explode(','$_GET['ids']); for($i=0; $i<sizeof($ids); $i++) { $wheresql .= "idbruger = ".$ids[$i]." "; if(sizeof($ids)-1 != 1) { $wheresql .= "OR "; } } mysql_query("DELETE FROM bruger WHERE ".$wheresql); echo ("Slettet!"); } ?> <html> <body> <? // HENTER ALLE BRUGERE FRA DB $q = mysql_query("select idbruger, Fornavn,efternavn, user_name from users2 where aut ='$id' "); // SKRIVER ALLE BRUGERE UD while($r = mysql_fetch_array($q)) { // Laver en string med Id'er der skal tjekkes: $ids .= "\"".$r['idbruger']."\","; ?> <input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$aut?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br /> <?}?> <button onclick="java script:getMarkedSend();">Slet markerede brugere</button> <script> function getMarkedSend() { idsar = new Array(<?=$ids?>); for(i = 0; i < idsar.length; i++) { if(document.getElementById(idsar[i]).value == 'on') { markedids = concat(markedids,i+","); } } window.open('?delete=true&ids='+markedids,'_self'); } </script> </body> </html>
25. april 2005 - 13:10
#4
i explode-funktion skal der lige være et komma så $ids = explode(','$_GET['ids']); bliver til $ids = explode(',',$_GET['ids']);
25. april 2005 - 13:30
#5
det kan jeg sku ikke få til at spille <?php include 'db.inc'; // TJEKKER OM DER SKAL SLETTES if($delete){ $ids = explode(',',$_GET['ids']); for($i=0; $i<sizeof($ids); $i++) { $wheresql .= "aut = ".$ids[$i]." "; if(sizeof($ids)-1 != 1) { $wheresql .= "OR "; } } mysql_query("DELETE FROM users2 WHERE ".$wheresql); echo ("Slettet!"); } ?> <html> <body> <? // HENTER ALLE BRUGERE FRA DB $q = mysql_query("select * from users2 "); // SKRIVER ALLE BRUGERE UD while($r = mysql_fetch_array($q)) { // Laver en string med Id'er der skal tjekkes: $ids .= "\"".$r['aut']."\","; ?> <input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$aut?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br /> <?}?> <button onclick="java script:getMarkedSend();">Slet markerede brugere</button> <script> function getMarkedSend() { idsar = new Array(<?=$ids?>); for(i = 0; i < idsar.length; i++) { if(document.getElementById(idsar[i]).value == 'on') { markedids = concat(markedids,i+","); } } window.open('?delete=true&ids='+markedids,'_self'); } </script> </body> </html>
25. april 2005 - 13:42
#6
Får du nogle fejlmeddelelser?
25. april 2005 - 13:43
#7
Endnu en rettelse: <input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$aut?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br /> Til <input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$idbruger?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br /> aut til idbruger
25. april 2005 - 13:51
#8
jeg får 4 check bokser ingen andre oplysninger, men kan ikke slette dem ,kan markere dem men intet andet .. når man trykker på knappen skriver den en fejl i IE .. i linje 67
25. april 2005 - 13:54
#9
<?php include 'db.inc'; // TJEKKER OM DER SKAL SLETTES if($delete){ $ids = explode(',',$_GET['ids']); for($i=0; $i<sizeof($ids); $i++) { $wheresql .= "idbruger = ".$ids[$i]." "; if(sizeof($ids)-1 != 1) { $wheresql .= "OR "; } } mysql_query("DELETE * FROM users2 WHERE ".$wheresql); echo ("Slettet!"); } ?> <html> <body> <? // HENTER ALLE BRUGERE FRA DB $q = mysql_query("select * from users2 "); // SKRIVER ALLE BRUGERE UD while($r = mysql_fetch_array($q)) { // Laver en string med Id'er der skal tjekkes: $ids .= "\"".$r['idbruger']."\","; ?> <input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$idbruger?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br /> <?}?> <button onclick="java script:getMarkedSend();">Slet markerede brugere</button> <script> function getMarkedSend() { idsar = new Array(<?=$ids?>); for(i = 0; i < idsar.length; i++) { if(document.getElementById(idsar[i]).value == 'on') { markedids = concat(markedids,i+","); } } window.open('?delete=true&ids='+markedids,'_self'); } </script> </body> </html> ----------------- data dump CREATE TABLE `users2` ( `aut` int(11) NOT NULL auto_increment, `user_name` varchar(15) NOT NULL default '', `password` varchar(15) NOT NULL default '', `email` varchar(60) NOT NULL default '', `adm` int(1) default '0', `fornavn` text, `efternavn` text NOT NULL, `adresse` text NOT NULL, `postnr` int(4) NOT NULL default '0', `bynavn` text NOT NULL, `baadnavn` text, `baadtype` text, `tekst` text, PRIMARY KEY (`aut`), UNIQUE KEY `user_name` (`user_name`) ) TYPE=MyISAM AUTO_INCREMENT=59 ; -- -- Data dump for tabellen `users2`
25. april 2005 - 15:13
#10
Ok, jeg kan se at det må være noget med field-navnene. 1. Erstat alle forekomster af "idbruger" med "aut" 2. Erstat: <input type="checkbox" name="<?=$r['idbruger']?>" id="<?=$idbruger?>"> <?=$user_name?> - <?=$Fornavn?> <?=$efternavn?><br /> med <input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br /> Husk at der forskel på "Fornavn" og "fornavn"!!! Så det hele bliver til: ------------------------------------------------------------------------------- <?php include 'db.inc'; // TJEKKER OM DER SKAL SLETTES if($delete){ $ids = explode(',',$_GET['ids']); for($i=0; $i<sizeof($ids); $i++) { $wheresql .= "aut = ".$ids[$i]." "; if(sizeof($ids)-1 != 1) { $wheresql .= "OR "; } } mysql_query("DELETE * FROM users2 WHERE ".$wheresql); echo ("Slettet!"); } ?> <html> <body> <? // HENTER ALLE BRUGERE FRA DB $q = mysql_query("select * from users2 "); // SKRIVER ALLE BRUGERE UD while($r = mysql_fetch_array($q)) { // Laver en string med Id'er der skal tjekkes: $ids .= "\"".$r['aut']."\","; ?> <input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br /> <?}?> <button onclick="java script:getMarkedSend();">Slet markerede brugere</button> <script> function getMarkedSend() { idsar = new Array(<?=$ids?>); for(i = 0; i < idsar.length; i++) { if(document.getElementById(idsar[i]).value == 'on') { markedids = concat(markedids,i+","); } } window.open('?delete=true&ids='+markedids,'_self'); } </script> </body> </html>
25. april 2005 - 15:46
#11
Hej Juks. Nu har jeg oprettet en database og kørt det igennem. Det virker nu med følgende kode og din database: ---------------------------------------------- <?php include 'db.inc'; // TJEKKER OM DER SKAL SLETTES if($delete){ $ids = explode(',',$_POST['ids']); for($i=0; $i<(sizeof($ids)-1); $i++) { $wheresql .= "aut = ".$ids[$i]." "; if(sizeof($ids)-1 != 1) { $wheresql .= "OR "; } } mysql_query("DELETE FROM users2 WHERE ".$wheresql); echo ("Slettet!"); } ?> <html> <body> <form action="?" method="post"> <? // HENTER ALLE BRUGERE FRA DB $q = mysql_query("select * from users2 "); // SKRIVER ALLE BRUGERE UD while($r = mysql_fetch_array($q)) { // Laver en string med Id'er der skal tjekkes: $ids .= $r['aut'].","; ?> <input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br /> <?}?> <input type="hidden" name="ids" value="<?=$ids?>"> <input type="submit" name="delete" value="Slet markerede brugere"> </form> </body> </html>
25. april 2005 - 15:58
#12
Ok, det går ikke skide godt det her, men nu prøver jeg altså lige igen. Den fra før virker kun hvis du har én bruger. Denne her skulle meget gerne virke 100% ellers bliver jeg vanvittig: ______________________________________________________________________________ <?php include 'db.inc'; // TJEKKER OM DER SKAL SLETTES if($delete){ $ids = explode(',',$_GET['ids']); for($i=0; $i<(sizeof($ids)-1); $i++) { if($_GET[$ids[$i]] == 'on') { $wheresql .= "aut = ".$ids[$i]." OR "; } } $wheresql .= "aut = 999999999999999999"; mysql_query("DELETE FROM users2 WHERE ".$wheresql); echo ("Slettet!"); } ?> <html> <body> <form action="?" method="get"> <? // HENTER ALLE BRUGERE FRA DB $q = mysql_query("select * from users2 "); // SKRIVER ALLE BRUGERE UD while($r = mysql_fetch_array($q)) { // Laver en string med Id'er der skal tjekkes: $idsar .= $r['aut'].","; ?> <input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br /> <?}?> <input type="hidden" name="ids" value="<?=$idsar?>"> <input type="submit" name="delete" value="Slet markerede brugere"> </form> </body> </html>
26. april 2005 - 09:47
#13
ja lige bortset fra den ikke sletter når man trykke slet ..
26. april 2005 - 10:30
#14
tak for hjælpen med lidt ændringer virker den nu::
26. april 2005 - 10:30
#15
løsning: <?php include 'db.inc'; // TJEKKER OM DER SKAL SLETTES if(isset($_GET["delete"])){ $ids = explode(',',$_GET['ids']); for($i=0; $i<(sizeof($ids)-1); $i++) { if($_GET[$ids[$i]] == 'on') { if (isset($wheresql)) { $wheresql .= " OR "; } $wheresql .= "aut='".$ids[$i]."'"; } } mysql_query("DELETE FROM users2 WHERE ".$wheresql) ; echo ("DELETE FROM users2 WHERE ".$wheresql) ; echo ("Slettet!"); } ?> <form action="?" method="get"> <? // HENTER ALLE BRUGERE FRA DB $q = mysql_query("select * from users2 "); // SKRIVER ALLE BRUGERE UD while($r = mysql_fetch_array($q)) { // Laver en string med Id'er der skal tjekkes: $idsar .= $r['aut'].","; ?> <input type="checkbox" name="<?=$r['aut']?>" id="<?=$r['aut']?>"> <?=$r['user_name']?> - <?=$r['fornavn']?> <?=$r['efternavn']?><br /> <?}?> <input type="hidden" name="ids" value="<?=$idsar?>"> <input type="submit" name="delete" value="Slet markerede brugere"> <input type="hidden" name="pageid" value="slet_bruger"> </form>
Vi tilbyder markedets bedste kurser inden for webudvikling