Avatar billede xsix Nybegynder
26. september 2007 - 17:38 Der er 8 kommentarer og
1 løsning

Slette mail fra databasen uden den bliver fjernet

Hej Eksperter.
Har sådan et internt mailsystem, hvor man så kan slette og skrive mails etc. Mit problem er at når jeg sletter en mail, vil jeg gerne have at den kun bliver fjernet fra brugerens indbakke, så at den stadig ligger i databasen, derfor har jeg lavet et felt i databasen der hedder 'visable', når det er sat til 1, kan de se mailen, når det er sat til 0, kan de ikke se den. Men problemet er at når man sletter en mail (sætter visable til 0) bliver den ikke fjernet, den bliver først fjernet når man sætter alle ens mails i indbakken til 0.

Nogen der kan hjælpe mig? :)

Her er koden:

<?
session_start();
if(!$_SESSION[user_id] > 0) {
header("location:index.php");
exit;
}
?>
<?
include("connect.php");

$query = mysql_query("SELECT * FROM players WHERE id=$_SESSION[user_id]");
$user_data = mysql_fetch_assoc($query) or die(mysql_error());

$query = mysql_query("SELECT * FROM mail WHERE recipient=$_SESSION[user_id]");
$mail_data = mysql_fetch_assoc($query) or die(mysql_error());

mysql_query("UPDATE mail SET new = '0' WHERE recipient='$_SESSION[user_id]'") or die(mysql_error());

if($mail_data[id] >= 0)
{
$row = mysql_query("SELECT * FROM mail WHERE recipient=".$_SESSION[user_id]." ORDER BY time ASC") or die (mysql_error());
while($row1 = mysql_fetch_array($row))
{
if($mail_data['visable'] == '1') {
echo nl2br("Sender: " . $row1['sender'] . "\n");
echo nl2br("Recived: " . $row1['time'] . "\n");
echo nl2br("Subject: " . $row1['topic'] . "\n");
echo nl2br("Message: " . $row1['message'] . "\n");
?>
<a href="deletemail.php?id=<?php echo $row1['id']; ?>">Delete</a><?
?><hr color="FFFFFF"><?
}
}
}
?>
Avatar billede mr-xmas Nybegynder
26. september 2007 - 17:44 #1
så gør sådan at når den bliver oprettet står der "0" i tabelen under "slet" og når den er slettet står der "1" og så kan du gøre sådan den kun åbner alle beskeder med "0" under "slet"
Avatar billede xsix Nybegynder
26. september 2007 - 17:45 #2
Det er også sådan jeg har gjort, bare omvendt, så at når der står 1 under "visable", så kan du se den, og når der står 0, så kan man ikke.
Avatar billede barklund Nybegynder
26. september 2007 - 17:46 #3
Udover at det er noget værre rod, så skal du rette:

if($mail_data['visable'] == '1') {

Til:

if($row1['visable'] == '1') {

:)

--
Morten Barklund
Avatar billede xsix Nybegynder
26. september 2007 - 17:49 #4
Ahh, jeg havde lavet en if funktion for at sortere de slettede fra, kan jo bare vælge dem i mit mysql_query. Tror også det var det, som du mente.
Tak for det, bare smid et svar mr-xmas :)
Avatar billede xsix Nybegynder
26. september 2007 - 17:51 #5
barklund:
Ved ikke om det virker, men bruger mr-xmas løsning, da jeg så helt kan undvære min if funktion.
Men hvorfor synes du det er noget værre rod? :)
Avatar billede barklund Nybegynder
26. september 2007 - 18:08 #6
Det kan du også snildt gøre - men det er noget rod fordi du vælger alle mails fra databasen to gange - både i $query og i $row.
Avatar billede xsix Nybegynder
26. september 2007 - 18:20 #7
Ahh det er rigtigt, det er bare som standard jeg satte de 2 querys ind, men kan jo bare fjerne dem igen :)
Avatar billede xsix Nybegynder
26. september 2007 - 23:20 #8
mr-xmas læg et svar for point :)
Avatar billede mr-xmas Nybegynder
27. september 2007 - 18:10 #9
Svar :)
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