Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dlaczego return nie przekazuje zmiennej?
greg606
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 16.01.2006
Skąd: Wrocław

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


Oto moja pierwsza funkcja:
  1. <?php
  2. function zapytanie($query) {
  3.    $wynik_db = mysql_query ( "$query" ) or die ( "MySQL Error: " . mysql_error () );
  4.    return $wynik_db;
  5. }
  6. ?>


i tak próbuję ją uruchomić:

  1. <?php
  2. $query = "SELECT * FROM forum_user";
  3. zapytanie($query);
  4. var_dump($wynik_db);
  5. ?>

Ale to nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Jak to poprawnie napisać?
Funkcja jest umieszczona w dołączonym config.php

Ten post edytował greg606 26.01.2009, 12:58:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




zapytanie ZWRACA (return" title="Zobacz w manualu PHP" target="_manual) wartość, taka natura funkcji:

  1. <?php
  2. $wynik_db = zapytanie($query);
  3. var_dump($wynik_db)
  4. ?>


Proponuję lekturę kursu PHP i manuala.
Go to the top of the page
+Quote Post
greg606
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 16.01.2006
Skąd: Wrocław

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


Cytat(erix @ 24.01.2009, 23:08:44 ) *
Proponuję lekturę kursu PHP i manuala.


Kolego, po co ta ironia?
Nie wiem i tyle, manual i książki widocznie mi nie pomogły, inaczej bym nie pytał

Więc jak?
Czy nie do tego służy return?
Użyłem słowa global ale nie wiem czy to jest konieczne?
Go to the top of the page
+Quote Post
djstrong
post
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 9
Dołączył: 22.09.2006

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


Cytat(greg606 @ 24.01.2009, 23:52:11 ) *
Kolego, po co ta ironia?
Nie wiem i tyle, manual i książki widocznie mi nie pomogły, inaczej bym nie pytał

Więc jak?
Czy nie do tego służy return?
Użyłem słowa global ale nie wiem czy to jest konieczne?

To ja radzę jeszcze raz przeczytać jakiś kurs programowania (niekoniecznie php).
Funkcja zwraca wartość nie do zmiennej jaką podasz po return, tylko jej wartość (do tak jakby wywołania jej). I z zewnątrz funkcji nie masz dostępu do zmiennych utworzonych w funkcji.
Go to the top of the page
+Quote Post
greg606
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 16.01.2006
Skąd: Wrocław

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


No zauważyłem że nie mam dostępu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
chociaż to troszke bez sensu. Czemu jak moge w funkcji wypluć jakieś echo to nie mogę zmiennej.

Ten post edytował greg606 25.01.2009, 00:46:43
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Kolego, po co ta ironia?

To nie była ironia. Na Twoje pytanie jest odpowiedź w praktycznie każdym kursie PHP. A w manualu na pewno. Rozdział: funkcje.

Cytat
Czemu jak moge w funkcji wypluć jakieś echo to nie mogę zmiennej.

Bo echo wypluwa do wyjścia. Zmienne w funkcji są tylko w obrębie funkcji, a wartość zwracasz właśnie przez return" title="Zobacz w manualu PHP" target="_manual. Ale najpierw poczytaj troszkę na ten temat, bo naprawdę wiele już na ten temat napisano.
Go to the top of the page
+Quote Post
Asmox
post
Post #7





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


No to podstawowe pytanie: Czy zrobiłeś połączenie z bazą zanim wywołałeś funkcję? Ja bym ją zrobił o tak:
  1. <?php
  2. function zapytanie($query) {
  3.   mysql_connect("host", "root", "");
  4.   mysql_select_db("baza");
  5.   $wynik_db = mysql_query ( "$query" ) or die ( "MySQL Error: " . mysql_error () );
  6.   return $wynik_db;
  7. }
  8. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Moja pierwsza funkcja
Jak napiszesz drugą funkcję, to tytulem tematu bedzie "Moja druga funkcja" ?
Proszę poprawić tytul na prawidlowy, oddajacy tresc problemu

Cytat
Więc jak?
Czy nie do tego służy return?

Przeciez erix podal ci kod jak poprawnie odebrac to, co zwraca return
  1. <?php
  2. $wynik_db = zapytanie($query);
  3. var_dump($wynik_db);
  4. ?>
Go to the top of the page
+Quote Post
greg606
post
Post #9





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 16.01.2006
Skąd: Wrocław

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


Cytat(Asmox @ 26.01.2009, 12:05:22 ) *
No to podstawowe pytanie: Czy zrobiłeś połączenie z bazą zanim wywołałeś funkcję? Ja bym ją zrobił o tak:
  1. <?php
  2. function zapytanie($query) {
  3.   mysql_connect("host", "root", "");
  4.   mysql_select_db("baza");
  5.   $wynik_db = mysql_query ( "$query" ) or die ( "MySQL Error: " . mysql_error () );
  6.   return $wynik_db;
  7. }
  8. ?>


Łączenie z bazą z pewnych względów mam wcześniej.
Z tego co czytałem to return kończy wykonywanie funkcji więc chyba tutaj to mysql_close nie zostanie wykonane, prawda?


Cytat(nospor @ 26.01.2009, 12:51:55 ) *
Przeciez erix podal ci kod jak poprawnie odebrac to, co zwraca return


Rzeczywiście. Doszedłem do tego troche później (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Thanks (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #10





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


nie zostatnie.
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: 23.08.2025 - 21:33