Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Nie widzi funkcji, zawartch w klasie przy includowaniu
Balas
post
Post #1





Grupa: Zarejestrowani
Postów: 347
Pomógł: 0
Dołączył: 27.08.2005
Skąd: Inowrocław

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


Mam problem, a mianowicie wywoluje klase do obslugi bazy danych i includuje plik templatki
  1. <?php
  2. /*polaczenie z baza danych*/
  3. $db=new db($db['host'] , $db['user'] , $db['pass'] , $db['name'] );
  4.  
  5. /*generowanie strony*/
  6. include('./template/index.php');
  7.  
  8. /*koniec polaczenia*/
  9. $db->close();
  10. ?>


w templatce mam:
  1. <? page('page_body'); ?>

gdzie funkcja page (z podanym parametrem) includuje odpowiedni modul.

Problem w tym, ze modul nie widzi polaczenia z baza danych (tym samym zainicjonowania klasy i funkcji w niej zawartch (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) ), a gdy umieszcze polaczenie bezposrednio w module to nie widzi parametrow :/ Jak to rozwiazac?

Klasa do obslugi bazy danych jest includowana, tak samo jak konfiguracja bazy.

Ten post edytował OnE.Killer 11.03.2006, 21:19:56
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Problem masz z "modulem" -- dlaczego jego kodu nie pokazesz?

Masz kilka opcji
1. przekaz obiekt polaczenia do "modulu"
2. uzyj Singleton'a dla obiektu polaczenia
3. przekaz parametry polaczenia do "modulu"
4. no i jeszcze nieszczesne "global" w funkcjach, niepolecam
Go to the top of the page
+Quote Post
Balas
post
Post #3





Grupa: Zarejestrowani
Postów: 347
Pomógł: 0
Dołączył: 27.08.2005
Skąd: Inowrocław

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


Ograniczylem wszystko do jednego pliku, nadal nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
  1. <?
  2. /*includowanie klas*/
  3. include('./includes/db.php');
  4. include('./includes/pager.php');
  5.  
  6. /*includowanie configu*/
  7. include('./cfg.php');
  8.  
  9. /*ustalenie tresci strony*/
  10. function page($element)
  11. {
  12. /*moduly w glownej czesci forum*/
  13. if($element=='page_body') {
  14. $row_number = $db -> row_number('pages WHERE frontpage=1');
  15. //stworzenie pagera
  16. $pager=new pager($row_number, $page_id);
  17. //nadanie nazwy klasy dla pagera
  18. $pager -> setClass('pager_nav');
  19. //zapytanie dal ktorego przeznaczony jest pager
  20. $query='SELECT * FROM pages WHERE frontpage=1 LIMIT '.$pager -> limit().', '.$pager -> onPage();
  21. $result = $db -> query($query);
  22. while($row = mysql_fetch_array($result))
  23. {
  24. echo '<div class="news"><h3>';
  25. echo $row['title'];
  26. echo '</h3><h4>napisal: ';
  27. echo $row['autor'].', '.$row['data'];
  28. echo '</h3><div class="text">';
  29. echo $row['text_small'];
  30. if($row['text_all'] !== '') {
  31. echo '<br />';
  32. echo '<a href="index.php?mod=pages&id='.$row['id'].'">wiecej</a>'; }
  33. echo '</div></div>';
  34. }
  35. // wyswietlenie nawygacji pagera
  36. $pager -> render();
  37. echo 'cos';
  38.  
  39. }
  40. }
  41. /*polaczenie z baza danych*/
  42. $db=new db($db['host'] , $db['user'] , $db['pass'] , $db['name'] );
  43.  
  44. page('page_body');
  45.  
  46.  
  47. /*koniec polaczenia*/
  48. $db->close();
  49. ?>


Moglby ktos napisac co i jak ?
Cytat
2. uzyj Singleton'a dla obiektu polaczenia

Znalazlem troche o tym na wiki.php i webcity.pl ale nie znajduje dla tego wykozystania u mnie (chyba ze zle zrozumialem).

Ten post edytował OnE.Killer 11.03.2006, 22:58:18
Go to the top of the page
+Quote Post
koala
post
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 4.03.2005

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


W najgorszym przypadku możesz zrobić :
Kod
function page($element)
{
    global $db;

// tu Twój istniejący kod

}


albo :
Kod
function page($element, $db)
{

}

linia 46: page('page_body', $db);
Go to the top of the page
+Quote Post
Balas
post
Post #5





Grupa: Zarejestrowani
Postów: 347
Pomógł: 0
Dołączył: 27.08.2005
Skąd: Inowrocław

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


Problem juz rozwiazalem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

  1. <?php
  2. db::query('xxx');
  3. ?>


Ten post edytował OnE.Killer 16.03.2006, 17:04:30
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: 14.09.2025 - 15:39