Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wiadomości prywatne(skrzynka odbiorcza)
Avenlonth
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.12.2009

Ostrzeżenie: (0%)
-----


Witam. Jestem początkujący w php. Utworzyłem skrypt Wiadomości Prywatnej, ale w skrzynce odbiorczej napotkałem błąd i nie wiem co jest źle.

Otóż gdy chcę odczytać treść tej wiadomości wyskakuje mi taki błąd:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/t/h/the-shadow-of-death/odbiorcza.php on line 15

Skrypt wiadomości odebranych wygląda następująco:

  1. <?
  2. require "sesje.php";
  3. require "naglowek.php";
  4.  
  5. if($_GET["id"]){
  6. $id=intval($_GET["id"]);
  7. if(mysql_num_rows(mysql_query("select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od=".$_SESSION["zalogowany"]))){
  8. mysql_query("delete from wiadomosci where wiad_id=$id");
  9. echo "Usunięto wiadomość!<br>";
  10. }
  11. }
  12.  
  13. else if($_GET["co"]){
  14. $co=intval($_GET["co"]);
  15. if(mysql_num_rows(mysql_query("select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od=".$_SESSION["zalogowany"]))){
  16. mysql_query("update wiadomosci set wiad_przeczytane=1 where wiad_id=$co");
  17. $wynik=mysql_query("select * from wiadomosci where wiad_id=$co and wiad_czyj=0");
  18. $rekord=mysql_fetch_array($wynik);
  19. $nadawca=mysql_fetch_array(mysql_query("select user_login from users where user_id=".$rekord["wiad_od"]));
  20. echo "<br><br><table><tr><td>Nadawca: ".$nadawca["user_login"]."</td><td>Data: ".date("d/m/Y H:i", strtotime($rekord["wiad_data"]))."</td><td><a href='odbiorcza.php?id=".$rekord["wiad_id"]."'>usuń</a></td></tr>";
  21. echo "<tr><td colspan=3>".$rekord["wiad_temat"]."</td></tr>";
  22. echo "<tr><td colspan=3>".$rekord["wiad_tresc"]."</td></tr>";
  23. echo "</table>";
  24. }
  25. }
  26.  
  27. else{
  28. $wynik=mysql_query("select * from wiadomosci where wiad_do=".$_SESSION["zalogowany"]." and wiad_czyj=0 order by wiad_data");
  29.  
  30. echo "<table><tr><td>Nadawca</td><td>Temat</td><td>Data</td><td>&nbsp;</td></tr>";
  31. if(!mysql_num_rows($wynik))echo "<tr><td colspan=4 style='text-align:center'>Nie masz żadnych wiadomości!</td></tr>";
  32. else while($rekord=mysql_fetch_array($wynik)){
  33. $nadawca=mysql_fetch_array(mysql_query("select user_login from users where user_id=".$rekord["wiad_od"]));
  34. $kw1="";$kw2="";
  35. if(!$rekord["wiad_przeczytane"]){$kw1="<b>";$kw2="</b>";}
  36. 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>";
  37. }
  38. echo "</table>";
  39. }
  40. require "stopka.php";
  41. ?>


Gdzie tutaj zrobiłem błąd?
Prosiłbym o pomoc z Waszej strony.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
r4xz
post
Post #2





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

Ostrzeżenie: (0%)
-----


spróbuj:

  1.  
  2. $sadas = mysql_query("select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od=".$_SESSION["zalogowany"], $con);
  3.  
  4. //$con - zmienne w której masz zapisane łączenie z bazą danych
  5.  
  6. $glupi_blad = mysql_num_rows($sadas);
  7.  
  8. if($glupi_blad){
  9.  


jeśli nie działa to dużo nie poradzę, sam wiele razy wyrywałem sobie włosy żeby pozbyć się tego błędu, a kiedy znikł nawet nie miałem pojęcia co go wcześniej wywoływało tongue.gif



ewentualnie sprawdź czy błędu w zapytaniu do bazy danych nie zrobiłeś:

  1.  
  2. $sql = "select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od=".$_SESSION["zalogowany"];
  3.  
  4. $result = mysql_query($sql) or die(mysql_error());
  5.  




--------------------
Go to the top of the page
+Quote Post
MateuszS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Te cuda

  1.  
  2. if(mysql_num_rows(mysql_query("select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od=".$_SESSION["zalogowany"]))){

zastap

  1. $zapytanie=mysql_query("select wiad_od from wiadomosci where wiad_id=$id and wiad_czyj=0 and wiad_od='".$_SESSION["zalogowany"]."'") or die(mysql_error());
  2. $wynikow=mysql_num_rows($zapytanie);
  3. if($wynikow!=0) { //itd



--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Avenlonth
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.12.2009

Ostrzeżenie: (0%)
-----


Niestety Panowie wciąż nie działa;/
Go to the top of the page
+Quote Post
MateuszS
post
Post #5





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


$_SESSION['zalogowany'] to ID tego usera zalogowanego?


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Avenlonth
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.12.2009

Ostrzeżenie: (0%)
-----


Już udało mi się to naprawić.

poprawny kod wygląda tak:

  1. <?
  2. require "sesje.php";
  3. require "naglowek.php";
  4.  
  5. if($_GET["id"]){
  6. mysql_query("delete from wiadomosci where wiad_id=".$_GET["id"]);
  7. echo "Usunięto wiadomość!<br>";
  8. }
  9.  
  10. else if($_GET["co"]){
  11. mysql_query("update wiadomosci set wiad_przeczytane=1 where wiad_id=".$_GET["co"]);
  12. $wynik=mysql_query("select * from wiadomosci where wiad_id=".$_GET["co"]);
  13. $rekord=mysql_fetch_array($wynik);
  14. $nadawca=mysql_fetch_array(mysql_query("select user_login from users where user_id=".$rekord["wiad_od"]));
  15. echo "<br><br><table><tr><td>Nadawca: ".$nadawca["user_login"]."</td><td>Data: ".date("d/m/Y H:i", strtotime($rekord["wiad_data"]))."</td><td><a href='odbiorcza.php?id=".$rekord["wiad_id"]."'>usuń</a></td></tr>";
  16. echo "<tr><td colspan=3>".$rekord["wiad_temat"]."</td></tr>";
  17. echo "<tr><td colspan=3>".$rekord["wiad_tresc"]."</td></tr>";
  18. echo "</table>";
  19. }
  20.  
  21. else{
  22. $wynik=mysql_query("select * from wiadomosci where wiad_do=".$_SESSION["zalogowany"]." and wiad_czyj=0 order by wiad_data");
  23.  
  24. echo "<table><tr><td>Nadawca</td><td>Temat</td><td>Data</td><td>&nbsp;</td></tr>";
  25. if(!mysql_num_rows($wynik))echo "<tr><td colspan=4 style='text-align:center'>Nie masz żadnych wiadomości!</td></tr>";
  26. else while($rekord=mysql_fetch_array($wynik)){
  27. $nadawca=mysql_fetch_array(mysql_query("select user_login from users where user_id=".$rekord["wiad_od"]));
  28. $kw1="";$kw2="";
  29. if(!$rekord["wiad_przeczytane"]){$kw1="<b>";$kw2="</b>";}
  30. 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>";
  31. }
  32. echo "</table>";
  33. }
  34. require "stopka.php";
  35. ?>


Dziękuję Wam bardzo, że próbowaliście mi pomóc.
Pozdrawiam.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 09:24