Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: podzielenie kodu na funkcje
Forum PHP.pl > Forum > Przedszkole
BugsBunny
było tak
  1. <?php
  2. $zapytanie = 'SELECT * FROM `forum_fora` ';
  3. include ('dane.inc');
  4. $dblink = @mysql_connect($host,$user,$pass);
  5.  if (empty($dblink))
  6.  { echo "błąd przy podłączaniu do bazy dancyh";
  7.  }
  8. if (mysql_select_db($db,$dblink) !== TRUE)
  9. { echo "błądz przy wybieraniu bazy danych";
  10. }
  11. $wynik = mysql_query($zapytanie);
  12. for ($i = 0; $i < mysql_num_rows($wynik); $i++)
  13.  {
  14.  $wiersze = mysql_fetch_array($wynik);
  15.  
  16. $dforum[$i] = array('FORUMID' => $wiersze['fforum_id'],
  17.  'TYTUL' => $wiersze['ftytul'],
  18. 'PODTYTUL' => $wiersze["fpodtytul"]);
  19.  }
  20.  
  21.  
  22. $tpl = new Chameleon;
  23. $tpl -> load('forum.tpl');
  24. $tpl -> setVar('FORUM',$dforum);
  25. $tpl -> display();
  26.  
  27. ?>


zrobiłęm potem tak
  1. <?php
  2.  
  3.  
  4. $tpl = new Chameleon;
  5. $tpl -> load('header.tpl');  
  6. $tpl -> setVar('TYTUL', 'FORUM');
  7. $tpl -> display();  
  8. $buffer = $tpl -> parse();
  9.  
  10. $zapytanie = 'SELECT * FROM `forum_fora` ';
  11.  
  12. $wynik = pobierz($zapytanie); // !!!!!!!!chodzi o to
  13. for ($i = 0; $i < mysql_num_rows($wynik); $i++)
  14.  {
  15.  $wiersze = mysql_fetch_array($wynik);
  16.  
  17. $dforum[$i] = array('FORUMID' => $wiersze['fforum_id'],
  18.  'TYTUL' => $wiersze['ftytul'],
  19. 'PODTYTUL' => $wiersze["fpodtytul"]);
  20.  }
  21.  
  22.  
  23. $tpl = new Chameleon;
  24. $tpl -> load('forum.tpl');
  25. $tpl -> setVar('FORUM',$dforum);
  26. $tpl -> display();
  27.  
  28. // a to jest ta funkcja
  29.  
  30.  
  31. function pobierz($co)
  32. {
  33. include ('dane.inc');
  34. $dblink = @mysql_connect($host,$user,$pass);
  35.  if (empty($dblink))
  36.  { echo "błąd przy podłączaniu do bazy dancyh";
  37.  }
  38.  echo"dobrze2";
  39.  if (mysql_select_db($db,$dblink) !== TRUE)
  40. { echo "błądz przy wybieraniu bazy danych";
  41. }
  42. $zwroc = mysql_query($co,$dblink);
  43. if ($wynik !== TRUE)
  44. {echo "pobranie nie zawiera danych";  
  45. }
  46.  
  47. return $zwroc;
  48.  
  49. }
  50.  
  51. ?>


a błąd jest taki:
Kod
Fatal error: Call to undefined function pobierz() in C:\Program Files\WebServ\httpd-users\forum\test.php on line 15



Zaczęło działać ale jak przekopiuję treść funkcji do tego samego pliku.
Ale normalnie ona znajduje się w funkcje.php

zrobiłem tak:
  1. <?php
  2. include ('funkcje.php');
  3. ?>

i tak jakby nie dodawało
próbowałem require() i require_once() ale efekt taki sam sadsmiley02.gif
dr_bonzo
Definicja funkcji musi znalezc sie przed jej wywolaniem:
  1. <?php
  2. function pobierz()
  3. {
  4. ....
  5. }
  6.  
  7. $x = pobierz();
  8. ?>
nospor
@dr_bonzo jestes w błędzie. nie musi winksmiley.jpg
Prosty przyklad do analizy:
  1. <?php
  2. pobierz();
  3.  
  4. function pobierz(){
  5. echo 'aaaa';
  6. }
  7. ?>
pozatym juz napisal, ze skrypt co pokazal to mu dziala. nie dzial mu gdy da include.

Problem lezy w tym, że include musi być przed wywolaniem funkcji a nie przed.
żle:
  1. <?php
  2. pobierz();
  3. include('plik.php');
  4.  
  5. ?>


dobrze:
  1. <?php
  2.  
  3. include('plik.php');
  4. pobierz();
  5.  
  6. ?>
BugsBunny
no przecież tak też mam
w index.php
  1. <?php
  2. include ('funkcje.php');
  3.  
  4. // jakiś tam kod
  5.  
  6.  
  7. pobierz();
  8. ?>

i nie dizała a jak wkleje zawartoś plku funkcje.php to działa blink.gif
nospor
Cytat
no przecież tak też mam
Nie bulwersuj się tak winksmiley.jpg
W kodzie co pokazales w pierwszym poscie nie masz nigdzie include. Masz tylko wyrwane z kontekstu jedno include, ale nie wiem gdzie je dales winksmiley.jpg
dr_bonzo
Cytat
@dr_bonzo jestes w błędzie. nie musi winksmiley.jpg
No tak, sprawdzilem, to przez C smile.gif
BugsBunny
no wieć dlaczeego może to nie działać?questionmark.gif? Może jakieś ustawienia co do serwera czy coś questionmark.gif
nospor
1) masz jakis blad w pliku, ktory includujesz
lub
2) nie widzi pliku, ktory includujesz. zla sciezka, jakas literowka
BugsBunny
FUNCKCJE.php
  1. <?php 
  2. // funkcje.php
  3.  
  4. /* pobierz -> pobiera zapytanie SQL 
  5. a zwaraca dane które trzeba poza funkcją przypisać do tablicy */
  6. function pobierz($co)
  7. {
  8. include ('dane.inc');
  9. $dblink = @mysql_connect($host,$user,$pass);
  10.  if (empty($dblink))
  11.  { echo "błąd przy podłączaniu do bazy dancyh";
  12.  }
  13.  echo"dobrze2";
  14.  if (mysql_select_db($db,$dblink) !== TRUE)
  15. { echo "błądz przy wybieraniu bazy danych";
  16. }
  17. $zwroc = mysql_query($co,$dblink);
  18. if ($wynik !== TRUE)
  19. {echo "pobranie nie zawiera danych";  
  20. }
  21.  
  22. return $zwroc;
  23.  
  24. }
  25. function rozlacz ()
  26. {  
  27. mysql_close($dblink);
  28.  
  29. }
  30.  
  31. ?>



TEST.php
  1. <?php
  2.  
  3.  
  4. require_once ('class.chameleon.php');
  5. require_once ('funkcje.php');
  6.  
  7. $tpl = new Chameleon;
  8. $tpl -> load('header.tpl');  
  9. $tpl -> setVar('TYTUL', 'FORUM');
  10. $tpl -> display();  
  11. $buffer = $tpl -> parse();
  12.  
  13. $zapytanie = 'SELECT * FROM `forum_fora` ';
  14.  
  15. $wynik = pobierz($zapytanie);
  16. for ($i = 0; $i < mysql_num_rows($wynik); $i++)
  17.  {
  18.  $wiersze = mysql_fetch_array($wynik);
  19.  
  20. $dforum[$i] = array('FORUMID' => $wiersze['fforum_id'],
  21.  'TYTUL' => $wiersze['ftytul'],
  22. 'PODTYTUL' => $wiersze["fpodtytul"]);
  23.  }
  24.  
  25.  
  26. $tpl = new Chameleon;
  27. $tpl -> load('forum.tpl');
  28. $tpl -> setVar('FORUM',$dforum);
  29. $tpl -> display();
  30.  
  31.  
  32.  
  33. $tpl = new Chameleon;
  34. $tpl -> load('footer.tpl');
  35. $tpl -> display();
  36. ?>
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.