på den enkelte checkbox skal du lave en id der svarer til id på comment - bare så du kan finde den, og kun den. Se fx koden til dette sites post <input type="checkbox" name="marked[]" id="marked_5608" value="5608"/>
Derefter er det bare (ved klik på 'slet') at gå til et loop, hvor de markerede id'er slettes, en ad gangen.
Jeg går udfra at dette allerede nu ligger i et password beskyttet område således at kun udvalgte personer vil kunne slette.
Så gør du, som claes57 siger, det at du giver dine checkboxe en value svarende til primærnøglen i din database tabel, typisk og forhåbentlig et ID. Name attributten er også vigtig her, du skal huske at angive det som et array altså med [] efter.
Dernæst skal du huske at lade det hele stå indenfor et form-tag således at du kan submitte siden til noget php der kan fortolke udfører den egentlige handling. Herunder har jeg skrevet et hurtigt utestet eksempel:
<?php //Array af de valgte indlæg $list = $_POST['marked'];
foreach($list as $item) { echo 'Du har valgt at slette indlæg: '.$item.'<br>'; } ?>
echo sætningen kan du så erstatte med noget der sletter i databasen. Og derefter videresende til en anden side.
Synes godt om
Slettet bruger
27. december 2011 - 21:54#3
Okay tak... Det vil jeg lige prøve at rode med....
Det kan vel gøres meget nemt ved at kun kunne slette en ad gangen? Det kan jeg egentlig godt nøjes med.. Tror det bliver lidt bøvlet for mig at gå i gang med arrays.. :-)
Jeg ved nu ikke om det er bøvlet. Det er jo forholdvis simpelt at gøre det som nedenstående:
$list = $_POST['list']; foreach($list as $item) { $sql = "DELETE FROM table WHERE id=".$item; mysql_query($sql) or die(mysql_error()); } header("location:".$_SERVER['HTTP_REFERER']);
Det kunne gøre pænere men det vil formentlig virke for dig.
$list = array(); foreach($_POST['list'] as $id){ $list[] = mysql_real_escape_string($id); } $sql = 'DELETE FROM table WHERE id IN ('.implode(',',$item).')'; mysql_query($sql) or die(mysql_error()); header("location:".$_SERVER['HTTP_REFERER']);
Det er muligt, du synes, det er bøvlet at akrive DB-rækker til en buffer - men det er til gengæld måden at gøre det på. Den måde, hvorpå du echo'er dine tabeller i en while-løkke i spørgsmålet, er derimod skoleeksemplet på, hvordan man ikke gør =)
Skriv i stedet til en streng- eller arraybuffer, som skrives ud ét sted. Det vil øge din kodes effektivitet med en faktor 5-10 *o)
Hvis man ønsker hjælp fremover, er det nok ikke videre begavet bare at klappe sine spørgsmål i på dén måde! Udvis i det mindste en smule respekt for, at folk ganske gratis har brugt deres fritid på at hjælpe dig, da du havde brug for hjælp og bad om den!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.