Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Tablica w oop
kropamk
post 29.01.2013, 22:17:29
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
tolomei
post 29.01.2013, 22:39:31
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.


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
kropamk
post 29.01.2013, 22:45:48
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 29.01.2013, 22:47:52
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


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
-Gość-
post 29.01.2013, 22:51:27
Post #5





Goście







Zaimplementuj któryś z iteratorów SPL dla obiektu.
Go to the top of the page
+Quote Post
tolomei
post 29.01.2013, 22:54:48
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.


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
kropamk
post 29.01.2013, 23:11:10
Post #7





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

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


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!
Go to the top of the page
+Quote Post
mieszkos
post 29.01.2013, 23:46:50
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 12:07