Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zwracanie tablicy
w00t
post 9.02.2006, 21:19:42
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 8.02.2006

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


Witam.

Mam funkcję pobierajaca dane z bazy:
  1. <?php
  2.  
  3. function select($zapytanie) {
  4.  
  5. // funkcja przetwarzajaca zapytanie SELECT
  6.  
  7. if(!$zapytanie) {
  8. // jeśli nie ma zapytania
  9. $error = 'NO_SQL_QUERY';
  10. return $error;
  11. }
  12.  
  13. // zapytanie
  14. $wynik = @mysql_query($zapytanie);
  15. if(!$wynik) {
  16. // nie udalo się wykonac zapytania
  17. $error = 'NO_ASK';
  18. return $error;
  19. }
  20.  
  21. // ile rekordow zostalo pobranych
  22. $ile = @mysql_num_rows($wynik);
  23. if($ile == 0) {
  24. $error = 'NO_ROWS';
  25. return $error;
  26. }
  27.  
  28.  
  29. }
  30.  
  31. ?>



i chce zeby funkcja zwracała $wynik i $ile w taki sposob:
  1. <?php
  2.  
  3.  
  4. $pobierz = select($zapytanie);
  5.  
  6. // $pobierz staje sie tablica:
  7.  
  8. $pobierz['ile'] = $ile;
  9. $pobierz['wynik'] = $wynik;
  10.  
  11.  
  12. ?>


Ten post edytował w00t 9.02.2006, 21:22:49
Go to the top of the page
+Quote Post
omeck
post 9.02.2006, 22:24:34
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 7
Dołączył: 2.07.2005
Skąd: Lublin

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


zauważ, że funckcje `select` napisałeś tak, że może zwrócić Ci wyłącznie zmienną $error winksmiley.jpg
Go to the top of the page
+Quote Post
crash
post 9.02.2006, 22:29:12
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Na końcu funkcji dopisz:
  1. <?php
  2. return array( 'ile' => $ile, 'wynik' => $wynik );
  3. ?>


--------------------
Go to the top of the page
+Quote Post
w00t
post 9.02.2006, 22:29:52
Post #4





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 8.02.2006

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


Dzieki crash :*

Mam kolejne pytanie:
instrukcja return bodajze konczy funkcje, jednak czy da sie zwrocic dwa wyniki?
oto kawalek wyciagniety z mojej funkcji:

  1. <?php
  2. if(!$zapytanie) {
  3. // jeśli nie ma zapytania
  4. $error = 'NO_SQL_QUERY';
  5. return $error; return false;
  6. // Czy taki cos jest mozliwe? :)
  7. }
  8. ?>


Chodzi mi o to zeby pozniej wykonac taka instrukcje:
  1. <?php
  2.  
  3. if(!select($jakiestam_zapytanie)) // to samo co if(select($jakiestam_zapytanie) === false)
  4. {
  5. echo $error;
  6. }
  7.  
  8. ?>


Ten post edytował w00t 9.02.2006, 22:53:29
Go to the top of the page
+Quote Post
omeck
post 9.02.2006, 23:23:13
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 7
Dołączył: 2.07.2005
Skąd: Lublin

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


Cytat(w00t @ 2006-02-09 21:29:52)
da sie zwrocic dwa wyniki?


w ten sposób, jaki podałeś, to nie

funkcja może zwrócić, albo `jeden wynik` albo tablicę z wynikami
Go to the top of the page
+Quote Post
crash
post 9.02.2006, 23:29:42
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


w00t: Podałeś klasyczny przykład do funkcji zwracającej coś, albo nic smile.gif Np.:
  1. <?php
  2. function doTest()
  3. {
  4.  if( jakisWarunek )
  5.  {
  6. return 'Wystąpił super błąd! Fajnie nie?';
  7.  }
  8.  // ...
  9.  return null;
  10. }
  11.  
  12. if( !is_null( $msg = doTest() ) )
  13. {
  14.  echo $msg;
  15. }
  16. ?>

Możesz oczywiście pokombinować i zwracać albo kod błędu albo tablicę i odpowiednio sprawdzać (is_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: 8.07.2025 - 03:22