Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> CMS i classa db
tamin
post
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.
Go to the top of the page
+Quote Post
rzseattle
post
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."
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:35