Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] function i ich zasięg
Forum PHP.pl > Forum > Przedszkole
szuki
Witam. Załóżmy, że mam plik index.php i function.php.

W tym pierwszym na początku dołączam plik:

  1. <?php
  2.  
  3. include "function.php";
  4. connection();
  5. randkey();


w którym nawiązuje połączenie z bazą i wykonuje drobne zapytanie do bazy.

  1. <?php
  2.  
  3. function connection() {
  4. $mysql = mysql_connect("localhost", "xxxxx", "xxxxx");
  5.  
  6. // ........
  7.  
  8. }
  9.  
  10. function randkey() {
  11.  
  12. $result = mysql_query("SELECT * FROM `keys`ORDER BY RAND() LIMIT 1;");
  13.  
  14. while ($row2 = mysql_fetch_array($result)) {
  15.  
  16.  
  17. $keyapi = $row2["key"];
  18.  
  19. echo "<tr><td>" . $row2["login"] . "</td> <td></td><td>" . $row2["key"] ."</td></tr>";
  20.  
  21.  
  22. }
  23.  
  24. }
  25.  
  26. ?>


Dlaczego w pliku index.php jest aktywne połączenie z bazą, natomiast wartość $keyapi nie jest przekazywana? Troszeczkę pogooglowałem, pewnie problem jest w zasięgu zmiennych, jednak na tym etapie nie jestem wstanie tego przeskoczyć.

Prosiłbym o jakieś rady.

Z góry dzięki, pozdrawiam.
viking
Ale gdzie ma byc przekazywana? Wybierasz przeciez z bazy w danej funkcji i robisz echo. Bez sensu też przypisujesz do zmiennej żeby zaraz potem jej nie użyć. A skoro zaczynasz to od razu wyrzuć ten kod i zainteresuj się PDO albo mysqli.
ethann
Zmienna $keyapi jest zmienną lokalną, będzie widziana jedynie w obrębie tej funkcji. Oczywiście taka zmienna po wykonaniu funkcji jest usuwana.
Ad korzystania z MySQL. Kolega wyżej ma rację. Funkcje mysql_* powoli są wypierane i najprawdopodobniej niedługo zostaną całkowicie wycofane.
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.