Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Nie działa return w funkcji.
Forum PHP.pl > Forum > Przedszkole
Kreton
  1. <?php
  2.  
  3. class Oceny
  4. {
  5.  
  6. function nazwy_kolumn()
  7. {
  8. $sql = mysql_query("SELECT * FROM `oceny` ");
  9. $num_fields = mysql_num_fields($sql);
  10. $kolumny = array();
  11. $i=0;
  12. while($i <= $num_fields - 1 )
  13. {
  14. $kolumny[] = mysql_field_name($sql, $i);
  15. $i++;
  16. }
  17. print_r($kolumny);
  18.  
  19. return $kolumny;
  20.  
  21. }
  22.  
  23.  
  24. }
  25.  
  26. ?>


Troszke kodu smile.gif. Problem polega na tym ze w pliku index.php includuje sobie pieknie klasę poprzez
Kod
include ('classes/oceny.class');

A potem chcę wyświetlić zawartość zmiennej $kolumny : dla przyskaldu 3 elementu.
Kod
print $kolumny[2];

Jednak nic nie zostaje wyświetlone. A co zawartości tablicy $kolumny jestem pewny ze jest dobra to przecież print_r() pięknie to pokazuje. Oczywiście wczesniej zostaje utworzony obiekt $obj = &new Oceny.

W jaki sposób wyciagnąć teraz tą tabilce ? Co się dzieje z $kolumny ?
ARJ
a czy to przypadkiem nie tworzy się tablica 2 wymiarowa? spróbuj $kolumny[0][0]
Athlan
a nie czasem:

return print_r($kolumny);

:?:
Kreton
@Athlan: Co takie coś by dało ? Moim zdaniem funkcja pomoze zwracać jedynie wartoścą logiczna ( true, false ) Ale coś co jest albo zmienną albo tablicą albo obiektem

@ARJ Nie nie zwraca tablicy 2 wymiarowej. Jezeli to pomoże to struktura tablicy $kolumny wygląda tak :
Kod
Array
(
    [0] => ID
    [1] => Imie
    [2] => Nazwisko
    [3] => Jezyk polski
    [4] => Matematyka
    [5] => WOK
    [6] => Historia
    [7] => Religia
)
ARJ
coś dzisiaj ze mną nie bardzo dry.gif
spróbuj tak:
  1. <?
  2. $oceny = new Oceny;
  3. $kolumny = nazwy_kolumn();
  4. print_r($kolumny);
  5. ?>
Ludvik
Jak print_r wypisuje dobrze, to wywołaj kod tak i powinno być po sprawie...
  1. <?php
  2. $o = new Oceny();
  3. $kolumny = $o->nazwy_kolumn();
  4. ?>
mike
Cytat(Kreton @ 14.07.2006, 20:06 ) *
Nie stety nie działa ...

A sprawdź czy działa edycja tematu w wątku tongue.gif
Jak już stwierdzisz że działa to go popraw, bo nie jest zgodny z Zasadami pisania na forum Przedszkole.
Kreton
Mam nadzieje że ten pasuje. Faktycznie działa edycja tematu tongue.gif ale moja wspaniała funkcja nie biggrin.gif
Ludvik
To może pokażesz nam swój kod... Bo po tym co napisałeś, to nie da się nic stwierdzić. Pokaż zawartość zmiennej $kolumny tuż przed zwróceniem jej, potem zawartość zmiennej, która pobierze tablicę z funkcji.
Gość_Kreton_*
Przed return robię :
  1. <?php
  2. print $kolumny[2];
  3. ?>

No i dostaję: Nazwisko.

Potem tworzę obiekt:
  1. <?php
  2. $ocn = new Oceny;
  3. $ocn->nazwy_kolumn();
  4. //I tutaj zakładam ze funkcja nazwy_kolumn() zwraca mi tablicę $kolumny
  5. print $kolumny[2];
  6. // Pwonno wyświetlić Nazwisko ale ... tego nie robi
  7. ?>
mike
  1. <?php
  2. $ocn = new Oceny;
  3. $kolumny = $ocn->nazwy_kolumn(); // <- wypada do czegoś przypisać wynik działania funkcji
  4. //I tutaj zakładam ze funkcja nazwy_kolumn() zwraca mi tablicę $kolumny
  5. print $kolumny[2];
  6. ?>


Zapraszam do podstaw: Podręcznik php :: Funkcje :: Zwracane wartości

P.S.
Przeczytaj to: Tematyka i zasady panujące na forum Przedszkole i popraw temat wątku a dokładnie dopisz do niego wymagane rzeczy inaczej zamknę.
Kreton
Ok, działa smile.gif Dzięki smile.gif
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.