Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z własną funkcją
Forum PHP.pl > Forum > PHP
bezul555
oto fragment codu:
  1. <?
  2. include(&#092;"config.inc.php\");
  3.  
  4. //database connection and selection
  5. $dblink = mysql_connect($host,$user,$password) or die(&#092;"no connection\");
  6.  
  7. function pokaz_dane();
  8. {
  9. $query = &#092;"SELECT * FROM kontakty ORDER BY nazwisko\" or die(\"bad query\");
  10. $mysql_result = mysql_query($query,$dblink);
  11. while ($wynik = mysql_fetch_array($mysql_result))
  12. {
  13. echo $wynik['imie'];
  14. echo (&#092;"<br>\");
  15. echo $wynik['nazwisko'];
  16. echo (&#092;"<br>\");
  17. echo $wynik['gg'];
  18. echo (&#092;"<br>\");
  19. echo (&#092;"<hr>\");
  20. }
  21. }
  22.  
  23. ?>
  24. <h3>Lista kontaktów:</h3>
  25. <? pokaz_dane(); ?>


Mój problem polega na tym że nic się nie dzieje, tzn funkcja nie działa. Pisałem to na podstawie skryptu z książki, sprawdziłem czy nie mam błędów, ale nic nie wynalazłem.

jeśli wywalę function pokaz_dane() to skryypt działa - wyswietlane są kontakty z bazy danych.

gdzie tkwi błąd, to nie mam pojęcia. Zmienne globalne są u mnie wyłączone
kszychu
dodaj global $dblink; na początku funkcji.
bezul555
już wcześniej z tym próbowałem ale nic z tego nie rozumiem. Przecież zmienna $dblink jest zdefiniowana przed funkcją i nie ma ona charaktaeru lokalnego.

  1. <?php
  2.  
  3. fonction pokaz_dane();
  4. {
  5.  global $dblink;
  6. }
  7.  
  8. ?>


Tak to powinno wyglądać?
tiraeth
a masz dostęp do bazy danych ? :]
silent
Cytat(bezul555 @ 2004-10-07 15:22:30)
już wcześniej z tym próbowałem ale nic z tego nie rozumiem. Przecież zmienna $dblink jest zdefiniowana przed funkcją i nie ma ona charaktaeru lokalnego.

Aby funkcja miała dostęp do zmiennych spoza jej ciała należy użyć dyrektywy global, lub przekazać zmienną jako parametr (zalecane).
pillot
Cytat("silent")
należy użyć dyrektywy global

no właśnie...

u mnie chodzi coś takiego:

  1. <?
  2. include(&#092;"config.inc.php\");
  3.  
  4. //database connection and selection
  5. $dblink = mysql_connect($host,$user,$password) or die(&#092;"no connection\");
  6.  
  7. function pokaz_dane()
  8. {
  9. global $dblink;
  10. $query = &#092;"SELECT * FROM kontakty ORDER BY nazwisko\" or die(\"bad query\");
  11. $mysql_result = mysql_query($query,$dblink);
  12. while ($wynik = mysql_fetch_array($mysql_result))
  13. {
  14. echo $wynik['imie'];
  15. echo (&#092;"<br>\");
  16. echo $wynik['nazwisko'];
  17. echo (&#092;"<br>\");
  18. echo $wynik['gg'];
  19. echo (&#092;"<br>\");
  20. echo (&#092;"<hr>\");
  21. }
  22. }
  23.  
  24. ?>
  25. <h3>Lista kontaktów:</h3>
  26. <? pokaz_dane(); ?>


miałeś jeszcze średnik za nagłówkiem funkcji
bezul555
Ukłon w stronę mistrza........
a ja wezmę koło i walnę się w czoło..........

Dziękuję za pomoc.

Pozdrawiam
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.