![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 6.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam !
Powiedzmy ze mam klase kernel a w niej includuje pliki z innymi klasami: $this->db = new db($dbhost, $dbuser, $dbpass, $dbname, &$this->error); I wtedy w index.php po: $kernel = new kernel; moge uzywac $kernel->db No i wszystko bylo ok do momentu w ktorym musialem uzyc 2 zapytan do bazy jedno a pozniej w nim drugie. I wtedy przy wykonywaniu zapytania wewnatrz tego drugiego (w petli) powstaje blad. while($array = $kernel->db->fetch_row()) { i tutaj powinno byc drugie zapytanie ale jak dam znowu: $kernel->db->query("SELECT...."); } To powstaje blad. Pomyslalem ze trzeba zrobic $db2 = new db; U mnie wyglada to tak: $db2 = new db($kernel->dbhost, $kernel->dbuser, $kernel->dbpass, $kernel->dbname, &$kernel->error); Mysle ze da sie to wszystko zrobic ladniej i lepiej. Macie jakies pomysly? Glownie chodzi mi o to ze nie chce dawac mozliwosci zrobienia $kernel->dbpass. A to jest mi tylko do new db potrzebne... A jak bedzie potrzeba zrobic 5x takie cos. To bardzo dlugo trwa i podnosi czas wykonywania skryptu. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Pewnie dlatego ze wynik zapytania podstawiasz pod jedna zmienna w obiekcie. Najlepiej by bylo gdyby obiekt db zwracal wynik zapytania (jako sql resource lub jakis obiekt) o dopiero na nim bys operowal:
Czyli zamiast twojego kodu cos w stylu: [php:1:d30d5e4a90]<?php $array = $kernel->db->getArray( $query ); foreach( $array as $value) { //i tutaj powinno byc drugie zapytanie ale jak dam znowu: $result = $kernel->db->query("SELECT...."); } ?>[/php:1:d30d5e4a90] Jak bys chcial dokladniej przyjzec takiemu rozwiazaniu to na dole masz link do ADoDB. -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:35 |