Avatar billede nbj1 Praktikant
09. november 2008 - 09:25 Der er 4 kommentarer og
1 løsning

kan ikke slette post mysql

er det ik en while løkke man skal bruge for at slette en post ?
jeg prøver og prøver men der sker ikke en dyt

$del = mysql_query("SELECT mail FROM mailliste ") or die(mysql_error());
        $row = mysql_fetch_array($del);
if ($post == $row['mail']){
            while ($mail_d = mysql_fetch_array($del)) {
            echo $mails_d['mail'];
            echo $post;
            $delete = mysql_query("DELETE FROM mailliste WHERE mail = '".$mails_d."'")or die(mysql_error());
            }
        print "Succes: " .$bruger. " E-mail adress now removed from the mailing list.";
            } else {
                print "Fiasko: " .$bruger. " you <b>NOT</b> in the mailling list!";

                }}
Avatar billede mike2002 Nybegynder
09. november 2008 - 10:35 #1
Hvad indeholder $post? Er det $_POST['email']?

if($post == $row['mail']) skal vel stå inde i while-løkken, ikke?

Alternativet er vel at lave:

$del = mysql_query("SELECT * FROM mailliste WHERE mail='" . $_POST['mail'] . "'");
if(mysql_num_rows($del) == 1)
{
    mysql_query("DELETE FROM mailliste WHERE mail='" . $_POST['mail'] . "' LIMIT 1");
}
Avatar billede nbj1 Praktikant
09. november 2008 - 10:41 #2
jeg har prøvet med at have if($post == $row['mail'])  inde i while løkken den vil stadig kunne finde første post i tabellen hvis jeg laver en echo $row['mail']; vise den fint nok posten
Avatar billede mike2002 Nybegynder
09. november 2008 - 14:10 #3
Når du henter data med mysql_fetch_array henter du et array. Når du så siger $row['mail'] får du den første post i arrayet. Med while løber du arrayet igennem.

Så if($post == $row['mail']) skal stå inde i while løkken.

Det er en mulighed at lave denne først:

if(in_array($post, $row){ // Check om $post findes i arrayet

while( ....osv

Desuden har du en inkongruens: $mail_d <> $mails_d

Spørger igen: Hvad indeholder $post?

Hvis $post = $_POST['mail']; // data fra formularen

så burde dette virke (utestet):

$del = mysql_query("SELECT mail FROM mailliste WHERE mail='".$post."'") or die(mysql_error());

if(mysql_num_rows($del) == 1) // Der må kun være en række med den angivne mail-adresse
{
      mysql_query("DELETE FROM mailliste WHERE mail='".$post."' LIMIT 1") or die(mysql_error());
}
else
{
      echo "Den angivne mailadresse: " . $post . " kunne ikke findes i maillisten";
}
Avatar billede nbj1 Praktikant
09. november 2008 - 20:48 #4
yap du har ret mike fant udaf det tak gi lige et svar
Avatar billede mike2002 Nybegynder
09. november 2008 - 21:40 #5
Så lidt...
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