Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Funkcja i PDO
materkamil
post
Post #1





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 24.04.2012

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


Nie wiem dlaczego wyświetla mi błąd:

Cytat
Undefined variable: database in


W takim kodzie:

  1. $database = new PDO('mysql:host=localhost;dbname=SCMS','root','');
  2. function funkcja() {
  3. $database->query('SELECT * FROM tabela');
  4. }


Gdy linię:

database->query('SELECT * FROM tabela');

dam wyżej, żeby nie była w funkcji wszystko jest ok.
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


A jaki jest zasięg zmiennych w php? http://php.net/manual/pl/language.variables.scope.php
Go to the top of the page
+Quote Post
Niktoś
post
Post #3





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


No jakbyś użył akcesorów lub nadał zmiennej status global'ny to może w funkcji zmienna ta byłaby widoczna, a tak to sobie w niej siedzi jako niezdefiniowana.
Go to the top of the page
+Quote Post
materkamil
post
Post #4





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 24.04.2012

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


Czyli rozwiązanie jest takie:

  1. function funkcja() {
  2. global $database;
  3. $database->query('SELECT * FROM users');
  4. }
Go to the top of the page
+Quote Post
Damonsson
post
Post #5





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Jeśli działa (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
!*!
post
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(materkamil @ 25.09.2012, 19:00:11 ) *
Czyli rozwiązanie jest takie:

  1. function funkcja() {
  2. global $database;
  3. $database->query('SELECT * FROM users');
  4. }


Tylko po co Ci taka funkcja?
Go to the top of the page
+Quote Post
materkamil
post
Post #7





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 24.04.2012

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


Nie dokładnie taka, ale chodzi właśnie o tą formę gdzie dzięki funkcji uzyskujemy dane z bazy. Funkcja jest potrzebna do nowego projektu CMSa który niedługo dostanie się do oceny
Go to the top of the page
+Quote Post
binprogrammer
post
Post #8





Grupa: Zarejestrowani
Postów: 249
Pomógł: 8
Dołączył: 10.08.2011
Skąd: Bełchatów

Ostrzeżenie: (10%)
X----


Więc jak skończysz to życzę Ci, aby nie trafił do działu humor (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
materkamil
post
Post #9





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 24.04.2012

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


Spokojnie, poprawiłem się. Po ostatniej krytyce nowy projekt będzie zdecydowanie bardziej zaawansowany. Dokładniej mówiąc ta funkcja potrzebna mi jest do systemu szablonów, do tego cmsa, bo jedną z głównych zmian jest właśnie odcięcie mechanizmu działania w php od wyglądu w html i css. Jak skończę sami zobaczycie, gwarantuje, nie będzie to tak "okropne" jak ostatni CMS.
Go to the top of the page
+Quote Post
untorched
post
Post #10





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

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


Dlaczego forum zamiast pomagać chce się nabijać z użytkowników? Nie pojmę tego, ale spróbuję zasugerować stworzenie klasy obsługi bazy, co będzie chyba bardzo dobrym rozwiązaniem. Prosty przykład(sic!):
  1. class Database {
  2.  
  3. private $hDB = NULL;
  4.  
  5. public function connect($host, $login, $pass, $db)
  6. {
  7. if($hDB !== NULL) return;
  8.  
  9. $this->hDB = new PDO('mysql:host='.$host.';dbname='.$db, $login, $pass);
  10. }
  11.  
  12. public function jakas_funkcja($sql)
  13. {
  14. return $this->hDB->query($sql);
  15. }
  16. }
  17.  
  18. $baza = new Database();
  19. $baza->connect($host, $login, $pass, $db);
  20. $zwrot = $baza->jakas_funkcja('SELECT * FROM users');
Go to the top of the page
+Quote Post
Niktoś
post
Post #11





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Nie za bardzo wiem co kombinujesz.Może o takie coś chodzi:

  1. function funkcja( $database) {
  2. $database->query('SELECT * FROM tabela');
  3. return $database;
  4. }
  5.  
  6. foreach (funkcja(new PDO('mysql:host=localhost;dbname=SCMS','root','')) as $row) {
  7. print $row['name'] . "\t";
  8. print $row['color'] . "\t";
  9. print $row['calories'] . "\n";
  10. }


Ten post edytował Niktoś 25.09.2012, 19:41:47
Go to the top of the page
+Quote Post
Damonsson
post
Post #12





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


@untorched: Poczytaj sobie wszystkie posty autora, to pojmiesz (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
materkamil
post
Post #13





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 24.04.2012

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


Nie, kompletnie nic podobnego nie będzie jak ten przykład. Nie potrafię tego wytłumaczyć dopóki nie ujrzycie kodu o co chodzi. Wykorzystanie tej funkcji jest w szablonach, aby nie zaśmiecać kodu HTML wstawkami z PHP
Go to the top of the page
+Quote Post
untorched
post
Post #14





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

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


Aha.
Go to the top of the page
+Quote Post
peter13135
post
Post #15





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Materkamil, Nie korzystaj z kursów UW-Team, bo potem takie kfiatki wychodzą. Korzystaj tylko ze swoich kursów.
Go to the top of the page
+Quote Post
!*!
post
Post #16





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(materkamil @ 25.09.2012, 20:42:28 ) *
Nie, kompletnie nic podobnego nie będzie jak ten przykład. Nie potrafię tego wytłumaczyć dopóki nie ujrzycie kodu o co chodzi. Wykorzystanie tej funkcji jest w szablonach, aby nie zaśmiecać kodu HTML wstawkami z PHP


Tylko co ma baza danych do szablonów? Stosuj MVC(P) i nie udziwniaj.

untorched - nie nabijamy się z użytkowników, pomagamy im. materkamil ma tylko ten zaszczyt (IMG:style_emoticons/default/wink.gif) przestaniemy, jak Nas zaskoczy i nie mam tu na myśli jego kodu.
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: 26.09.2025 - 07:30