Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcja a jej wywolanie
agentmullder
post
Post #1





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 1.03.2010

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


Witam. Zwracam sie z prosba o podpowiedz w rozwiazaniu mojego problemu. Posiadam funkcje php w dolnej czesci kodu, a chcialbym ją wywolac w wyzszej czesci kodu. Ale wyrzuca mi blad, ze funkcja nie jest zadeklarowana. Czy da sie to jakos rozwiazac bez przenoszenia funkcji w wyzsza czesc kodu (przed jej wywolaniem)?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
_walus
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 1
Dołączył: 4.09.2009

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


Z tego co wiem to nie ma takiej możliwości. Musisz ją przenieść na początek kody lub zdeklarować w jakimś pliku który dołączysz do kody, ale to również musi się odbyć przed wywołaniem funkcji...
Go to the top of the page
+Quote Post
agentmullder
post
Post #3





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 1.03.2010

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


No to mam w takim razie inne pytanie odnosnie funkcji. Zalozmy, ze moja funkcja jest w stylu:

  1. function wyswietl(){
  2.  
  3. //tutaj zapytania do bazy mysql
  4.  
  5. //tutaj wyswietla mi wyniki zapytania do bazy
  6.  
  7. $liczbawyszukan=mysql_num_rows($zapytanie);
  8.  
  9. }

Chcialbym dostac sie do tej zmiennej: $liczbawyszukan. Ale nie wiem jak. Jesli zrobie przez returna i wywolam funkcje to mi wydrukuje wyniki wszystkich zapytan, a ja potrzebuje tylko informacje na temat ilosci tych wyszukan. Jak sie do niej dostac?
Go to the top of the page
+Quote Post
zelu
post
Post #4





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


Najlepiej napisz osobną funkcję do pobierania ilości wierszy. Podstawowa zasada: jedna funkcja = jedna rzecz do zrobienia. Więc albo wyświetlasz wyniki, albo wyświetlasz ilość wyników, ale nie obie rzeczy na raz (IMG:style_emoticons/default/smile.gif)


Pozdro
Go to the top of the page
+Quote Post
agentmullder
post
Post #5





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 1.03.2010

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


Cytat(zelu @ 2.08.2010, 12:21:47 ) *
Najlepiej napisz osobną funkcję do pobierania ilości wierszy. Podstawowa zasada: jedna funkcja = jedna rzecz do zrobienia. Więc albo wyświetlasz wyniki, albo wyświetlasz ilość wyników, ale nie obie rzeczy na raz (IMG:style_emoticons/default/smile.gif)


Pozdro


Ale czy mozna tak zrobic, ze funkcja bedzie pobierala wlasnie ilosc zapytan do bazy z innej funkcji? No bo wydaje mi sie, ze tak sie nie da, a ta informacja, jaka chce uzyskac znajduje sie wylacznie w tej funkcji ;/ A moze zmienna globalna? hmm
Go to the top of the page
+Quote Post
zelu
post
Post #6





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


Zapomnij w ogóle o zmiennych globalnych (IMG:style_emoticons/default/smile.gif) Czegoś takiego nie ma! (IMG:style_emoticons/default/smile.gif) Tzn jest, ale nie używaj (IMG:style_emoticons/default/smile.gif)

A może po prostu SELECT COUNT(*) FROM tabela?


Edit:
Jeżeli już tak bardzo chcesz użyć tego mysql_num_results, to zrob sobie 3 funkcje:
1) Pobiera dane z bazy i zwraca Resource (czyli np to co zwraca mysql_connect)
2) Do drugiej funkcji przekaz to co dostales z 1 i dostaniesz ilosc wynikow
3) Do trzeciej funkcji przekaz to co dostales z 1 i wyswietl wyniki.

Ale i tak moim zdaniem lepsza jest wersja z 2 funkcjami (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował zelu 2.08.2010, 11:29:56
Go to the top of the page
+Quote Post
agentmullder
post
Post #7





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 1.03.2010

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


Cytat(zelu @ 2.08.2010, 12:26:38 ) *
Zapomnij w ogóle o zmiennych globalnych (IMG:style_emoticons/default/smile.gif) Czegoś takiego nie ma! (IMG:style_emoticons/default/smile.gif) Tzn jest, ale nie używaj (IMG:style_emoticons/default/smile.gif)

A może po prostu SELECT COUNT(*) FROM tabela?


Nie. Bo ta funkcja pobiera/wyszukuje z tabeli okreslona ilosc wynikow (nie wszystkie).
Go to the top of the page
+Quote Post
zelu
post
Post #8





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


No i co z tego? COUNT respektuje warunki WHERE wiec zwroci Ci dokladnie to samo co mysql_num_rows.

Poza tym spojrz na mojego edita z poprzedniego postu (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
IceManSpy
post
Post #9





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


To może zrób funkcję w funkcji? (IMG:style_emoticons/default/smile.gif)
Przecież jak masz:
  1. function wyswietl(){
  2. //tutaj zapytania do bazy mysql
  3. //tutaj wyswietla mi wyniki zapytania do bazy
  4. $liczbawyszukan=mysql_num_rows($zapytanie);
  5. }

To też używasz funkcji w funkcji (mysql_num_rows w wyswietl) (IMG:style_emoticons/default/smile.gif)

Ten post edytował IceManSpy 2.08.2010, 11:46:19
Go to the top of the page
+Quote Post
agentmullder
post
Post #10





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 1.03.2010

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


Cytat(IceManSpy @ 2.08.2010, 12:44:21 ) *
To może zrób funkcję w funkcji? (IMG:style_emoticons/default/smile.gif)
Przecież jak masz:
  1. function wyswietl(){
  2. //tutaj zapytania do bazy mysql
  3. //tutaj wyswietla mi wyniki zapytania do bazy
  4. $liczbawyszukan=mysql_num_rows($zapytanie);
  5. }

To też używasz funkcji w funkcji (mysql_num_rows w wyswietl) (IMG:style_emoticons/default/smile.gif)



Zalozmy mam:

  1. function wyswietl(){
  2. //tutaj zapytania do bazy mysql
  3. //tutaj wyswietla mi wyniki zapytania do bazy
  4. function iloscwyswietlen()
  5. {
  6. $liczbawyszukan=mysql_num_rows($zapytanie);
  7. return $liczbawyszukan;
  8. }
  9. }


To jak wywolac ta druga wewnetrzna funkcje? Normalnie jak kazda inna?
Go to the top of the page
+Quote Post
zelu
post
Post #11





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


Echhh... podstawy...

Nie masz deklarować funkcji w funkcji tylko wywołać funkcje w funkcji. Sprawdz czym roznia sie slowa deklarowac od wywolywac (IMG:style_emoticons/default/winksmiley.jpg) PHP to nie JS (IMG:style_emoticons/default/smile.gif)


Pozdro

A tak właściwie:
Cytat
Jesli zrobie przez returna i wywolam funkcje to mi wydrukuje wyniki wszystkich zapytan, a ja potrzebuje tylko informacje na temat ilosci tych wyszukan.


To skoro chcesz pobrać tylko informacje o ilości wyszukań, to po co je w tej funkcji wyświetlasz?


Pozdro
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: 25.08.2025 - 06:49