Witam,
chcę "przerobić" mój kod strukturalny na obiektowy. Miałem się już dawno za to brać ale chęci mi nie pozwalały (IMG:
style_emoticons/default/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:
<?php
if(isset($_SESSION['zalogowany'])){ <li>Zakładka1</a></li>
<li>Zakładka2</li>
<li>Zakładka3</li>
';
//wywołanie klasy
$connect_class_pm = new PrivateMessage();
$connect_class_pm->setDb($db);
$connect_class_pm->GetPrivateMessage();
var_dump($row_last_topic); //zwraca NULL if(!$read_message){
echo '<li><a href="private_message">Private message</a></li>'; }else{
echo '<li><a href="private_message">Private message <span class="black"><span class="pogrub">('.$data_read_message['ilosc'].')</span></span></a></li>'; }
}else{
<li class="active"><a href="forum">Zakładka1</a></li>
<li><a href="forum/userpanel">Zakładka2</a></li>
';
}
?>
Plik GetPrivateMessage.class.php wygląda tak:<?php
class PrivateMessage extends DatabaseManipulator {
public function GetPrivateMessage() {
$read_message = $this->getPdo()->prepare("SELECT COUNT(`przeczytane_pw`) AS `ilosc` FROM `wiadomosci_pw` WHERE `wiadomosc_do` = :nick_odbiorcy AND przeczytane_pw = 0");
$read_message->bindValue(":nick_odbiorcy", $_SESSION['nick'], PDO::PARAM_STR);
if(!$read_message->execute()){
throw new Exception("Błąd zapytania");
}else{
$data_read_message = $read_message->fetch();
$read_message = $data_read_message['ilosc'];
}
}
}
?>
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.
<?php
if(isset($_SESSION['zalogowany'])){ <li>Zakładka1</a></li>
<li>Zakładka2</li>
<li>Zakładka3</li>
';
$read_message = $db->prepare("SELECT COUNT(`przeczytane_pw`) AS `ilosc` FROM `wiadomosci_pw` WHERE `wiadomosc_do` = :nick_odbiorcy AND przeczytane_pw = 0");
$read_message->bindValue(":nick_odbiorcy", $_SESSION['nick'], PDO::PARAM_STR);
if(!$read_message->execute()){
throw new Exception("Błąd zapytania");
}else{
$data_read_message = $read_message->fetch();
$read_message = $data_read_message['ilosc'];
}
if(!$read_message){
echo '<li><a href="private_message">Private message</a></li>'; }else{
echo '<li><a href="private_message">Private message <span class="black"><span class="pogrub">('.$data_read_message['ilosc'].')</span></span></a></li>'; }
}else{
<li class="active"><a href="forum">Zakładka1</a></li>
<li><a href="forum/userpanel">Zakładka2</a></li>
';
}
?>
Wie może ktoś w czym jest problem?
Ten post edytował Kerth 10.06.2015, 07:39:32