09. november 2008 - 09:25Der 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!";
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
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"; }
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.