Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] obiekt w klasie
konrad13
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 18.07.2005

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


Witam

Mam klasę do obsługi bazy mysql. Zwykle zapytanie wykonuje w ten sposób $sql -> sql_query('zapytanie');

Ostatnio jednak chciałem napisać sobie klase 'user', w której byłaby m.in. metoda dodająca uzytkownika do bazy. Dlatego chciałem się zapytać w jaki sposób mam odwoływać się do metody sql_query() wewnątrz klasy 'user'?

Gdy normalnie chcę się odwołać do obiektu wewnątrz metody
  1. <?php
  2. class user
  3. {
  4. function dodaj()
  5. {
  6. echo $sql -> sql_query('SELECT * FROM table');
  7. }
  8. }
  9. ?>

pojawiają się błędy
Kod
Notice: Undefined variable: sql in c:\usr\krasnal\www\proba\index.php on line 17

Fatal error: Call to a member function sql_query() on a non-object in c:\usr\krasnal\www\proba\index.php on line 17



Z góry dziękuje za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
konrad13
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 18.07.2005

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


Dzięki za podpowiedzi.

global nie działa, wyrzuca błędy, próbowałem już tego wcześniej.

Pomysł z parametrem działa i pewnie będe go musiał wykorzystać jeśli nie wymyśle nic lepszego. Chodzi mi przede wszystkim o to, że będe musiał pamiętać, aby do każdego wywołania funkcji dodać jeszcze jeden parametr. To może być niezbyt przyjemne, a po to właśnie ucze sie OOP, żeby mi było lżej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Próbowałem w ten sposób: ($sql jest obiektem klasy do obsługi mysql)

  1. <?php
  2. class user
  3. {
  4. public $obiekt;
  5.  
  6. function dodaj()
  7. {
  8. echo $this -> $obiekt -> sql_query('SELECT * FROM config');
  9. echo $this -> obiekt;
  10. }
  11.  
  12.  
  13. function __construct($a)
  14. {
  15.  $this -> obiekt = $a;
  16. }
  17. }
  18. $user = new user(&$sql);
  19. $user -> dodaj();
  20. ?>


Ale oczywiście nie działa.
$this -> obiekt; zwraca Object id #1

natomiast

$this -> $obiekt -> sql_query('SELECT * FROM config'); lub
$obiekt -> sql_query('SELECT * FROM config');

powoduje błąd:
Fatal error: Call to a member function sql_query() on a non-object in c:\usr\krasnal\www\proba\index.php on line 21


Proszę jeszcze o pomoc. Jak wy rozwiązujecie to w swoich projetkach?
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 13:42