![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
A więc mam sobie taką oto klasę do obsługi bazy danych:
Chyba wiadomo jak to działa: mamy konstruktor który przy wywołaniu odrazu otwiera połączenie z bazą danych + pare funkcji Teraz mam klase do obsługi newsów "news" i chce wyświetlić newsy.
Wydaje mi się że wszystko jest dobrze ![]() Kod Błąd bazy danych: Jak widać w klasie DB jest ustawione raportowanie błędów lecz po "Błąd bazy danych:" powinien się wyświetlić komunikat Po usunięciu warunku OR DIE a także znaku @ przed funkcją dostaje taki komunikat: Kod Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\WebServ\httpd\aa\config\db.lib.php on line 31 Zaznaczam że zapytanie SQL które wykonuje jest poprawne ![]() Co tu się dzieje ![]() Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
funkcja query() nie zwraca ci nic. a ty mimo wszystko z niej cos pobierasz, a potem to cos (czyli nic), przekazuje do fetch. A w fetch masz mysql_fetch_assoc, której argumentem nie może być nic. Kapisz?
Funkcja query powinna zwracac wynik funkcji mysql_query -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił tak
I wtedy funkcje do wyciągania danych z bazy..
Ten post edytował SHiP 1.04.2005, 16:03:13 -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Acha czyli musze dać return ?
Myśle o czymś takim:
Coś takiego powinno działać ![]() Pozdrawiam Ten post edytował Diwi 1.04.2005, 15:59:40 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Musisz po prostu rezultat funkcji mysql_query przypisać do jakiejść zmiennej - u mnie $this -> result
Tylko wtedy wyświetlanie będzie lekko inne
Poza tym nie ruzumiem poco tworzyć obiekt jako zmienną klasy. Ja bym obiekt $db stworzył poza klasą news. I udostępnił go globalnie w wybranych funkcjach. Ten post edytował SHiP 1.04.2005, 16:12:00 -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 9.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
@SHiP: Głupi jest pomysł z przetrzymywaniem wyniku zapytania w $this->result. Takie rozwiązanie pozwala na istnienie tylko jednego wyniku w jednym czasie.
Wg mnie, najlepiej jest stworzyć klasę Result, która będzie zawierała wynik zapytania i metody operujące na wyniku SQL(fetchArray(), fetchObject, numRows() itd.) i właśnie instancję takiej klasy zwracać z metody db::sql_query() ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Ja to zrobiłem tak:
fetch_row:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 05:21 |