Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Tablica w oop
kropamk
post
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


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. ?>


Ten post edytował kropamk 29.01.2013, 22:20:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
tolomei
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


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.
Go to the top of the page
+Quote Post
kropamk
post
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


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){]

Ten post edytował kropamk 29.01.2013, 22:46:24
Go to the top of the page
+Quote Post
tolomei
post
Post #4





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


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.

Ten post edytował tolomei 29.01.2013, 22:51:18
Go to the top of the page
+Quote Post
-Gość-
post
Post #5





Goście







Zaimplementuj któryś z iteratorów SPL dla obiektu.
Go to the top of the page
+Quote Post
tolomei
post
Post #6





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Iterator się implementuje jeśli chcesz korzystać z obiektu tak jakby to była tablica.
W tym przypadku nie widzę takiej potrzeby.
Go to the top of the page
+Quote Post
kropamk
post
Post #7





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


Wybaczcie (IMG:style_emoticons/default/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!
Go to the top of the page
+Quote Post
mieszkos
post
Post #8





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

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


można było chyba też zrobić return $array.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 23:30