Avatar billede uni-c Nybegynder
03. maj 2003 - 22:40 Der er 11 kommentarer og
1 løsning

Sletning af Intern mails

jeg har et OM system på minside (privat messages)..

når jeg vil slette dem bruger jeg denne kode:

<?php
if($sletter){
mysql_query("DELETE from mails WHERE id=$slet") or print mysql_error();
}

$sletter er formnavnet som tjecker at submit er trykket på.
$slet er checkboxene..hver checkbox har en unik Id..

men med denne kode kan man kun slette en ad gangen selvom man markerer flere checkbokse...

hvordan laver man en der sletter flere end en PM..

noget med while ikogså..
Avatar billede schaefner Juniormester
03. maj 2003 - 22:44 #1
Prøv:

<?php
if($sletter){
  for($i=0; $ i < count($slet); $i++) {
    if($slet[$i] != "") {
      mysql_query("DELETE from mails WHERE id=$slet") or print mysql_error();
    }
  }
}
?>

<input type="checkbox" name="slet[]" value="1">
<input type="checkbox" name="slet[]" value="2">
<input type="checkbox" name="slet[]" value="3">
Avatar billede schaefner Juniormester
03. maj 2003 - 22:44 #2
mysql_query("DELETE from mails WHERE id=$slet") or print mysql_error();

skal selvfølgelig så være:
mysql_query("DELETE from mails WHERE id=$slet[$i]") or print mysql_error();
Avatar billede uni-c Nybegynder
03. maj 2003 - 22:47 #3
sådan her ser min checkbox ud

<input type="checkbox" name="slet" value="<?php echo $info[id]; ?>
Avatar billede schaefner Juniormester
03. maj 2003 - 22:48 #4
<input type="checkbox" name="slet[]" value="<?php echo $info[id]; ?>">
Avatar billede uni-c Nybegynder
03. maj 2003 - 22:48 #5
ok prøver lige
Avatar billede uni-c Nybegynder
03. maj 2003 - 22:49 #6
hmm..min checkbox kan godt bruges ik...

altså jeg behøver ik lave om på checkboxen vel...for de får jo hvert sit id i value..
Avatar billede schaefner Juniormester
03. maj 2003 - 22:50 #7
Jo du skal lave om:
<input type="checkbox" name="slet[]" value="<?php echo $info[id]; ?>">
Avatar billede uni-c Nybegynder
03. maj 2003 - 22:56 #8
får denne besked

Unknown column 'Array' in 'where clause'Unknown column 'Array' in 'where clause'
Avatar billede schaefner Juniormester
03. maj 2003 - 23:03 #9
Prøv:

<?php
if($sletter){
  for($i=0; $ i < count($slet); $i++) {
    if($slet[$i] != "") {
      $id = $slet[$i];
      mysql_query("DELETE from mails WHERE id=$id") or print mysql_error();
    }
  }
}
?>
Avatar billede uni-c Nybegynder
03. maj 2003 - 23:07 #10
det virker nu..danke
Avatar billede schaefner Juniormester
03. maj 2003 - 23:14 #11
svar
Avatar billede tipsen Nybegynder
03. maj 2003 - 23:22 #12
uni-c: At bruge arrays til checkbokse er ikke standard-html - så du kan ikke være sikker på dit script virker i alle browsere.

Når dette er sagt, kan scriptet vist også optimeres lidt ved at nøjes med et mysql-kald:

<?php
if($sletter){
  for($i=0; $ i < count($slet); $i++) {
    if($slet[$i] != '') {
      $tmparray[] = $i;
    }
  }
}
$tmptxt = implode(',', $tmparray);
mysql_query("DELETE from mails WHERE id IN ($tmptxt)) or print mysql_error();
?>
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester