Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Tablica w oop
Forum PHP.pl > Forum > Przedszkole
kropamk
Witam,

Nie za bardzo wiem, jak przekazać z konstruktora wartości w postaci tablicy do składowej $name klasy Element tak aby móc potem wyświetlić tablicę z wartościami $name w metodzie getName, kod poniżej

  1. <?php
  2.  
  3. class Element{
  4. public $name;
  5.  
  6. public function __construct() {
  7. $query = mysql_query("SELECT * FROM element");
  8.  
  9. while($row = mysql_fetch_assoc($query)){
  10. $this->name = $row['name'];
  11. }
  12. }
  13.  
  14. public function getName(){
  15. foreach ($this->name as $value){
  16. echo $value;
  17.  
  18. }
  19.  
  20.  
  21. }
  22. }
  23. ?>
tolomei
Witaj.

Spróbuj coś takiego:

  1. <?php
  2.  
  3. class Element{
  4. public $name = array();
  5.  
  6. public function __construct() {
  7. $query = mysql_query("SELECT * FROM element");
  8.  
  9. while($row = mysql_fetch_assoc($query)){
  10. $this->name[] = $row['name'];
  11. }
  12. }
  13.  
  14. public function getName(){
  15. foreach ($this->name as $value){
  16. echo $value;
  17.  
  18. }
  19.  
  20.  
  21. }
  22. }
  23. ?>


Zmiany wprowadzone w liniach 4 i 10.

Pozdrawiam.
kropamk
też tak robiłem tworząc tablicę ze składowej ale tak to nie działa, mam błąd -> Warning: Invalid argument supplied for foreach() in [foreach ($this->name as $value){]
tolomei
Bardzo to podejrzane.
Nawet nie byłoby wyników z bazy to nie powinien ten błąd wyskoczyć.

Może pokaż jeszcze jak tworzysz i korzystasz z tego obiektu.
Gość
Zaimplementuj któryś z iteratorów SPL dla obiektu.
tolomei
Iterator się implementuje jeśli chcesz korzystać z obiektu tak jakby to była tablica.
W tym przypadku nie widzę takiej potrzeby.
kropamk
Wybaczcie wink.gif ale rozwiązanie tolomei działa.

Nie zauważyłem zmiany w linii 10 name[], zapomniałem o [] i dlatego mi nie działało.

Wszystko działa.

Dzięki za pomoc!
mieszkos
można było chyba też zrobić return $array.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.