Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie na tabeli a obiektowość
gburus
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.06.2010

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


Witam,

Chciałbym napisać dla odświeżenia pamięci i nauczenia się OOP prostą aplikację. Mam następujący problem, w jaki sposób najszybciej i najłatwiej można _obiektowo_ pobierać i wyświetlać cale zestawy wyników zapytania. Np. w postaci tabeli HTML chcialbym przedstawić zawartość tabeli SQL, korzystając z obiektowego programowania. czy metoda typu:

foreach (n;n++) {
utwórz obiekt n-ty
wykonaj kod prezentacji
zniszcz obiekt
}

ma sens? wiem ze mozna to zrobic w postaci arraya, ale czy mozna arraya z obiektami łatwo mieszać?

Dziekuję z góry,
Greg.

Ten post edytował gburus 8.07.2010, 22:38:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gcdreak
post
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

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


Jeśli chcesz pobawić się obiektami to zasinteresuj sie ArrayIteratorem i ArrayObjectem. Jeśli chcesz wykorzystać MySQL-a to może mój kod Ci się sprzyda do operowania na rezultacie zapytania do bazy:
  1. class MysqlIterator implements Iterator
  2. {
  3.  
  4. private $results;
  5. private $key;
  6. private $row;
  7. public $fetchMode = 'assoc';
  8.  
  9. function __construct($results){
  10. $this->results = $results;
  11. $this->position = 0;
  12. }
  13.  
  14. public function current(){
  15. return $this->row;
  16. }
  17.  
  18. public function valid(){
  19. return (boolean) $this->row;
  20. }
  21.  
  22. public function next(){
  23. $this->position++;
  24. $this->row = $this->fetch();
  25. }
  26.  
  27. public function rewind(){
  28. $this->position = 0;
  29. $this->results->data_seek(0);
  30. $this->next();
  31. }
  32.  
  33. public function key(){
  34. return $this->position;
  35. }
  36.  
  37. private function fetch(){
  38. switch(strtolower($this->fetchMode)){
  39. case 'array':
  40. return $this->results->fetch_array(MYSQLI_NUM);
  41. case 'assoc':
  42. return $this->results->fetch_assoc();
  43. case 'object':
  44. return $this->results->fetch_object();
  45. }
  46. }
  47. }


Jeśli chciałbyś używać np PDO to kilka poprawek i powino działać. Jeśli byś coś przerobił to na PDO to podziel się kodem - może się kiedyś sprzydać i będzie gotowe.
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: 27.12.2025 - 13:20