Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z własną funkcją
bezul555
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 20.07.2004

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


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
Go to the top of the page
+Quote Post
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


dodaj global $dblink; na początku funkcji.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
bezul555
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 20.07.2004

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


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ć?
Go to the top of the page
+Quote Post
tiraeth
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


a masz dostęp do bazy danych ? :]
Go to the top of the page
+Quote Post
silent
post
Post #5





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.08.2004
Skąd: Jastrzębie Zdrój

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


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

Ten post edytował silent 7.10.2004, 15:03:24
Go to the top of the page
+Quote Post
pillot
post
Post #6





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 9.05.2004
Skąd: Puszów

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


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
Go to the top of the page
+Quote Post
bezul555
post
Post #7





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 20.07.2004

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


Ukłon w stronę mistrza........
a ja wezmę koło i walnę się w czoło..........

Dziękuję za pomoc.

Pozdrawiam
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 Aktualny czas: 19.08.2025 - 14:12