Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Nie usuwają się wiadomości (mysql) - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Nie usuwają się wiadomości (mysql) (/thread-nie-usuwaja-sie-wiadomo%C5%9Bci-mysql)



Nie usuwają się wiadomości (mysql) - Szponix - 25-09-2011

Witam. Jestem początkującym webmasterem i uczę się na błędach. Niestety, jak to w życiu bywa, wiele błędów mnie przerasta.
Mam taki problem. Na mojej stronie nie usuwają się wiadomości. Klikam na 'usuń', po czym pojawia się normalna strona (bez komunikatu), lecz po ponownym wejściu do wiadomości, list wciąż się tam znajduje.
KOD:


Kod PHP:
else {
    echo 
'<h1>Poczta</h1>';
    
$ilew=mysql_num_rows(mysql_query("select wiad_id from wiadomosci where wiad_przeczytane=0 and wiad_do=".$_SESSION["zalogowany"]." and wiad_czyj=0"));
    echo 
"<img src='obrazki/poczta.gif' border='0' /> <a href='odbiorcza.php'>($ilew nowych wiadomości)</a> &bull; <a href='newmsg.php'>Napisz nową wiadomość</a><br><br>";

    if(
$_GET["id"]){
    
$id=intval($_GET["id"]);
    if(
mysql_num_rows(mysql_query("select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od=".$_SESSION["zalogowany"]))){
    
mysql_query("delete from wiadomosci where wiad_id=$id");
    echo 
"Usunięto wiadomość!<br>";
    }
    } 

Szponix

Posty: 2
Dołączył(a): niedziela, 24 kwi, 2011 19:30


RE: Nie usuwają się wiadomości (mysql) - KowR - 25-09-2011

Poprawiłem Twój post bo kod umieszczamy w [_code] lub [_php] (bez "podłogi" _) taka mała zasada tego forum.

Teraz tak...
Kod PHP:
echo $id
Sprawdź czy wyświetla Ci numer ID tej wiadomości jeżeli tak to jedziemy dalej bo zapytanie Ci nie bangla. Teraz moje pytanie po co Ci najpierw sprawdzenie ilości zapytań jednym długim zapytaniem, a potem usunięcie? Nie można tego zrobić w jednym zapytaniu? Będzie dużo szybciej...
Kod PHP:
"DELETE FROM wiadomosci WHERE wiad_id='".$id."' AND wiad_czyj='".0."' AND wiad_od='".$_SESSION["zalogowany"]."'" 



RE: Nie usuwają się wiadomości (mysql) - Szponix - 25-09-2011

W wiadomości pojawia się:
Nadawca: 'nick'
Data
Temat
Treść

oraz 'usuń', które nie działa (nie pojawia się nawet komunikat)


RE: Nie usuwają się wiadomości (mysql) - KowR - 25-09-2011

Daj nam tu cały ten plik (to co dałeś to urywek) oraz zrzut BD i sprawdzimy. Wink


RE: Nie usuwają się wiadomości (mysql) - Szponix - 25-09-2011

Kod PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<?
require 
"sesje.php";
require 
"naglowek.php";
if(!
$_SESSION["zalogowany"]){
$kom="";
if(
$_GET["err"]==1)$kom="Błędny login lub hasło";
logowanie_okno($kom);

}
else {
echo 
'<h1>Poczta</h1>';
$ilew=mysql_num_rows(mysql_query("select wiad_id from wiadomosci where wiad_przeczytane=0 and wiad_do=".$_SESSION["zalogowany"]." and wiad_czyj=0"));
echo 
"<img src='obrazki/poczta.gif' border='0' /> <a href='odbiorcza.php'>($ilew nowych wiadomości)</a> &bull; <a href='newmsg.php'>Napisz nową wiadomość</a><br><br>";

if(
$_GET["id"]){
$id=intval($_GET["id"]);
if(
mysql_num_rows(mysql_query("select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od=".$_SESSION["zalogowany"]))){
mysql_query("delete from wiadomosci where wiad_id=$id");   
echo 
"Usunięto wiadomość!<br>";
}
}

else if(
$_GET["co"]){    
$co=intval($_GET["co"]); 
if(
mysql_num_rows(mysql_query("select wiad_od from wiadomosci where wiad_id=$co and wiad_czyj=0"))){
mysql_query("update wiadomosci set wiad_przeczytane=1 where wiad_id=$co");   
$wynik=mysql_query("select * from wiadomosci where wiad_id=$co and wiad_czyj=0");   
$rekord=mysql_fetch_array($wynik);
$nadawca=mysql_fetch_array(mysql_query("select user_login from users where user_id=".$rekord["wiad_od"]));
echo 
"<br><br><table border=1><tr><td><b>Nadawca:</b> ".$nadawca["user_login"]."</td><td><b>Data:</b> ".date("d/m/Y H:i"strtotime($rekord["wiad_data"]))."</td><td><a href='odbiorcza.php?id=".$rekord["wiad_id"]."'>usuń</a></td></tr>";
echo 
"<tr><td colspan=3><b>Temat:</b> ".$rekord["wiad_temat"]."</td></tr>";
echo 
"<tr><td colspan=3>".$rekord["wiad_tresc"]."</td></tr>";
echo 
"</table>";
}
}

else{
$wynik=mysql_query("select * from wiadomosci where wiad_do=".$_SESSION["zalogowany"]." and wiad_czyj=0 order by wiad_data");

echo 
"<table><tr><td><b>Nadawca</b></td><td><b>Temat</b></td><td><b>Data</b></td><td>&nbsp;</td></tr>";
if(!
mysql_num_rows($wynik))echo "<tr><td colspan=4 style='text-align:center'>Nie masz żadnych wiadomości!</td></tr>";
else while(
$rekord=mysql_fetch_array($wynik)){
$nadawca=mysql_fetch_array(mysql_query("select user_login from users where user_id=".$rekord["wiad_od"]));
$kw1="";$kw2="";
if(!
$rekord["wiad_przeczytane"]){$kw1="<b>";$kw2=" <font color='red'>(nowa)</font></b>";}
echo 
"<tr><td>".$nadawca["user_login"]."</td><td><a href='odbiorcza.php?co=".$rekord["wiad_id"]."'>$kw1".$rekord["wiad_temat"]."$kw2</td><td>".date("d/m/Y H:i"strtotime($rekord["wiad_data"]))."</td><td><a href='odbiorcza.php?id=".$rekord["wiad_id"]."'>usuń</a></td></tr>";
}
echo 
"</table>";
}
}
require 
"stopka.php";
?>



RE: Nie usuwają się wiadomości (mysql) - Szponix - 27-09-2011

Więc jak? Pomoże ktoś?