Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zwracanie tablicy
Forum PHP.pl > Forum > Przedszkole
w00t
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. ?>
omeck
zauważ, że funckcje `select` napisałeś tak, że może zwrócić Ci wyłącznie zmienną $error winksmiley.jpg
crash
Na końcu funkcji dopisz:
  1. <?php
  2. return array( 'ile' => $ile, 'wynik' => $wynik );
  3. ?>
w00t
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. ?>
omeck
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
crash
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).
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.