Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Metoda zwracająca tematy forum
acknex
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.11.2011

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


Witam, to mój pierwszy post na forum i od razu zaczynam problemem wink.gif Ale do rzeczy. Posiadam metodę w klasie która jest odpowiedzialna za wyświetlenie for w moim skrypcie. Po przeanalizowaniu modelu MCV stwierdzam, że nie jest ona do końca z nim zgodna, planuję ją zmodyfikować i tutaj pojawia się problem. Metoda wygląda tak:

  1. public function listForum() {
  2. require_once("include/class.database.php");
  3.  
  4. $connector = new DbConnector();
  5. $result = $connector->query("SELECT * FROM forum_question ORDER BY id DESC");
  6.  
  7. $color = 1;
  8.  
  9. while($rows = $connector->fetchArray($result)){
  10. echo '
  11. <tr class="row'.$color.'">
  12. <td align="left"><img src="./images/folder_open.png" border="0" width="15" height="15" />&nbsp;<a href="view.topic.php?id='.$rows['id'].'">'.$rows['topic'].'</a><BR></td>
  13. <td align="center">'.$rows['view'].'</td>
  14. <td align="center">'.$rows['reply'].'</td>
  15. <td align="center">'.$rows['datetime'].' przez <a href="./profile.php?login='.$rows['name'].'">'.$rows['name'].'</a></td>
  16. </tr>
  17. ';
  18. $view = 'aaa';
  19. if ($color == 1) { $color = 2;} else { $color = 1;}
  20. }
  21. }



Chcę przerobić tą metodę tak, żeby zwracała wszystkie tematy po kolei ale nie bardzo mam pomysł jak to rozwiązać. Będę wdzięczny za wskazówki.

Ten post edytował acknex 2.11.2011, 13:24:16
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie możesz zwrócić po prostu $connector->fetchArray($result)? Jeśli nie zwraca to tablicy to przeleć po elementach zwróconych przez tą metodę, przypisz je do tablicy i zwróć. Wyświetlanie rekordów w postaci tabelki zostaw widokowi, który dostanie tablicę danych.
Go to the top of the page
+Quote Post
acknex
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.11.2011

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


Rozwiązałem to tak:

Plik: include/class.forum.php
  1.  
  2. public function listForum() {
  3. require_once("include/class.database.php");
  4.  
  5. $connector = new DbConnector();
  6. $result = $connector->query("SELECT * FROM forum_question ORDER BY id DESC");
  7.  
  8. while($rows = $connector->fetchArray($result)){
  9. $_data[] = $rows['id']."@".$rows['topic']."@".$rows['view']."@".$rows['reply']."@".$rows['datetime']."@".$rows['name'];
  10. }
  11.  
  12. return $_data;
  13. }


Plik: forum.php

  1. <?php
  2. require_once("include/class.forum.php");
  3. require_once("include/class.users.php");
  4.  
  5. $forum = new Forum();
  6. $rows = $forum->listForum();
  7.  
  8. $color = 1;
  9.  
  10. for ($i=0; $i < count($rows); $i++) {
  11. $data = explode("@", $rows[$i]);
  12.  
  13. echo '<tr class="row'.$color.'">
  14. <td align="left"><img src="./images/folder_open.png" border="0" width="15" height="15" /> <a href="view.topic.php?id='.$data[0].'">'.$data[1].'</a><BR></td>
  15. <td align="center">'.$data[2].'</td>
  16. <td align="center">'.$data[3].'</td>
  17. <td align="center">'.$data[4].' przez <a href="./profile.php?login='.$data[5].'">'.$data[5].'</a></td>
  18. </tr>';
  19.  
  20. if ($color == 1) { $color = 2; } else { $color = 1;}
  21. }
  22. ?>


Mimo wszystko nie jestem do końca usatysfakcjonowany tym rozwiązaniem, więc jeśli ktoś ma jakieś sugestie to chętnie nad tym popracuję :)

Ten post edytował acknex 2.11.2011, 14:59:07
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Po co ci ta malpa tam?
Zwroc normalnie tablice.


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
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: 22.08.2025 - 07:33