Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa newsów
LeNy
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 17.01.2009

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


Witam. Tworzę właśnie klasę do newsów, lecz nie wiem jak zrobić aby wyświetlały się wszystkie dostępne newsy w bazie Mysql.
Czytałem dużo poradników, lecz nie znalazłem interesującej mnie odpowiedzi.
Aktualnie mój kod wygląda tak:
  1. class printNews
  2. {
  3. public function __construct()
  4. {
  5. $news_query = $mysql->query("SELECT * FROM `News`");
  6. return $news_query->fetch_assoc();
  7. }
  8. }
  9.  
  10. $newsy = new printNews;
  11. var_dump($newsy);


Proszę o pomoc (IMG:style_emoticons/default/sadsmiley02.gif)

Ten post edytował LeNy 24.03.2012, 21:28:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Zapomnij o słowie global. W OOP takie sytuacje rozwiązuje się za pomocą np. DI (Dependency Injection, wstrzykiwania zależności). W tym przypadku obiekt $mysql odpowiedzialny za obsługę połączenia z bazą danych powinieneś przekazać jako argument konstruktora. Skoro klasa ma reprezentować nowinki, to niech się tak właśnie nazywa, nazwa printNews nadaje się bardziej dla odpowiedniej metody, która te news-y wyświetla. Swoją drogą tym już klasa News nie powinna się zajmować. Przykład:
  1. class News {
  2. private $_db = null;
  3. public function __construct($db) {
  4. $this->_db = $db;
  5. }
  6. public function fetchAll() {
  7. $results = $this->_db->query("SELECT * FROM `News`");
  8. while($row = $results->fetch_assoc()) {
  9. $news[] = $row;
  10. }
  11. return $news;
  12. }
  13. }
  14.  
  15. $news = new News($mysql);
  16. foreach($news->fetchAll() as $data) {
  17. echo $data['UID'];
  18. // ...
  19. }


Chyba trochę przedobrzyłeś.

Ten post edytował mortus 24.03.2012, 22:32:41
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 23:51