Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][OOP]Brak efektu przy próbie wywołania metody
Kerth
post 10.06.2015, 07:39:10
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
nospor
post 10.06.2015, 07:42:46
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zeby funkcja cokolwiek zwracala, to musi posiadać magiczne słowo RETURN... moze zamiast za obiektowke, poducz się wpierw ze strukturalnego bo na tym jeszcze lezysz.
http://php.net/manual/en/functions.returning-values.php

I majac juz tyle postow moglbys juz naprawde nauczyc sie wyswietlac wszystkie bledy, to bys widzial czemu ci sie nic nie wyswietla.... Tu masz napisane jak:
Temat: Jak poprawnie zada pytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 13.07.2025 - 18:49