Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][OOP]Brak efektu przy próbie wywołania metody
Kerth
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


Witam,
chcę "przerobić" mój kod strukturalny na obiektowy. Miałem się już dawno za to brać ale chęci mi nie pozwalały smile.gif Kod dotyczy pobierania liczby nowych, nieprzeczytanych prywatnych wiadomości jeśli takowe istnieją. Liczba pojawia się w nawiasie np. "PrivateMessage(5)".

Tak wygląda aktualny kod:
  1. <?php
  2.  
  3. if(isset($_SESSION['zalogowany'])){
  4. echo '
  5. <li>Zakładka1</a></li>
  6. <li>Zakładka2</li>
  7. <li>Zakładka3</li>
  8. ';
  9. //wywołanie klasy
  10. $connect_class_pm = new PrivateMessage();
  11. $connect_class_pm->setDb($db);
  12. $connect_class_pm->GetPrivateMessage();
  13.  
  14. var_dump($row_last_topic); //zwraca NULL
  15. if(!$read_message){
  16. echo '<li><a href="private_message">Private message</a></li>';
  17. }else{
  18. echo '<li><a href="private_message">Private message <span class="black"><span class="pogrub">('.$data_read_message['ilosc'].')</span></span></a></li>';
  19. }
  20. }else{
  21. echo '
  22. <li class="active"><a href="forum">Zakładka1</a></li>
  23. <li><a href="forum/userpanel">Zakładka2</a></li>
  24. ';
  25. }
  26. ?>

Plik GetPrivateMessage.class.php wygląda tak:
  1. <?php
  2. class PrivateMessage extends DatabaseManipulator {
  3. public function GetPrivateMessage() {
  4. $read_message = $this->getPdo()->prepare("SELECT COUNT(`przeczytane_pw`) AS `ilosc` FROM `wiadomosci_pw` WHERE `wiadomosc_do` = :nick_odbiorcy AND przeczytane_pw = 0");
  5. $read_message->bindValue(":nick_odbiorcy", $_SESSION['nick'], PDO::PARAM_STR);
  6. if(!$read_message->execute()){
  7. throw new Exception("Błąd zapytania");
  8. }else{
  9. $data_read_message = $read_message->fetch();
  10. $read_message = $data_read_message['ilosc'];
  11. }
  12. }
  13. }
  14. ?>

Nie powoduje on błędów, jednakże nic nie zwraca. Nie zwraca liczby wiadomości jak to było w przypadku kodu strukturalnego. Co dziwne, w taki sam sposób wywołuję instancje w innych plikach np. przy logowaniu. Wszystko ładnie się pobiera z bazy, dane etc.

Wcześniej było w ten sposób i działało bez zarzutów.

  1. <?php
  2.  
  3. if(isset($_SESSION['zalogowany'])){
  4. echo '
  5. <li>Zakładka1</a></li>
  6. <li>Zakładka2</li>
  7. <li>Zakładka3</li>
  8. ';
  9. $read_message = $db->prepare("SELECT COUNT(`przeczytane_pw`) AS `ilosc` FROM `wiadomosci_pw` WHERE `wiadomosc_do` = :nick_odbiorcy AND przeczytane_pw = 0");
  10. $read_message->bindValue(":nick_odbiorcy", $_SESSION['nick'], PDO::PARAM_STR);
  11. if(!$read_message->execute()){
  12. throw new Exception("Błąd zapytania");
  13. }else{
  14. $data_read_message = $read_message->fetch();
  15. $read_message = $data_read_message['ilosc'];
  16. }
  17.  
  18. if(!$read_message){
  19. echo '<li><a href="private_message">Private message</a></li>';
  20. }else{
  21. echo '<li><a href="private_message">Private message <span class="black"><span class="pogrub">('.$data_read_message['ilosc'].')</span></span></a></li>';
  22. }
  23. }else{
  24. echo '
  25. <li class="active"><a href="forum">Zakładka1</a></li>
  26. <li><a href="forum/userpanel">Zakładka2</a></li>
  27. ';
  28. }
  29. ?>


Wie może ktoś w czym jest problem?

Ten post edytował Kerth 10.06.2015, 07:39:32
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 02:27