enbe
21.07.2009, 14:38:48
Witam.
Mam taki problem z funkcją. Mianowicie funkcja działa poprawnie pobiera rekordy z bazy, wyświetla wynik, ale pod wynikiem mam:
Call to a member function fetch_array() on a non-object in
Dotyczy to linii z while
<?php
function nazwa_wartosc ($nazwa) {
$zapytanie = "SELECT * FROM `".DB_PREFIX.$nazwa."`";
$pobierz = $db->query($zapytanie);
while($dane = $pobierz->fetch_array()) {
$t_lista[$dane['nazwa']] = $dane['wartosc'];
}
}
?>
Próbowałem na różne sposoby, ale skończyły mi się pomysły.
wookieb
21.07.2009, 14:41:45
zapewne trzeba to użyć tak...
<?php
while($dane = $db->fetch_array($pobierz)) {
?>
Przy pomyślnych wiatrach bez argumentu.
enbe
21.07.2009, 14:49:27
Próbowałem już tego, ale wtedy jest:
Fatal error: Call to undefined method mysqli::fetch_array()
No i nie działa wogóle, a to moje rozwiązanie działa, ale i tak wysyła błąd
erix
21.07.2009, 15:38:15
Myślenie boli?
Już metodą prób i błędów byś próbował inne zmienne podstawiać albo chociaż zajrzeć do dokumentacji w celu odnalezienia opisu tej metody...
enbe
21.07.2009, 15:51:02
Mnie nie boli.
Zanim to napisałem oczywiście przeglądałem net, dokumentacje i ksiązki. Jakoś nie znalazłem rozwiązania.
Zwykle taki skrypt mi działa i tym razem też działa, ale oprócz tego pokazuje błąd. Nie moge sam tego naprawić, więc pisze w celu uzyskania podpowiedzi.
erix
21.07.2009, 16:03:06
To pokaż, gdzie szukałeś.
enbe
21.07.2009, 16:15:56
No np. tu:
http://php.net.pl/manual/pl/mysqli-result.fetch-array.phpAlbo w "PHP i MySQL Tworzenie stron WWW" , "PHP Almanach".
Jak widzisz błąd to może mi go wskażesz, bo cały dzień z tym walcze.
erix
21.07.2009, 16:23:28
Cytat
mysqli_result::fetch_array
Zwróć uwagę na kontekst.
enbe
21.07.2009, 16:56:35
Nic mi to nie mówi.
Skoro nie powiesz mi w czym błąd, to może wiesz czemu to działa poprawnie, a pokazuje że jest bład?
Kompletnie nie rozumiem czemu ten wynik nie jest obiektem.
erix
21.07.2009, 17:53:00
To proponuję kurs PHP Obiektowego...
W skrócie: obiekt->metoda. U Ciebie jest zły obiekt, bo w nim nie ma tej metody.
enbe
21.07.2009, 18:25:51
To może powiesz mi jak zrobić, żeby był to "dobry" obiekt.
Skoro to zły obiekt i nie ma w nim tej metody, to dlaczego to działa?
Mam nadzieję, że rozumiesz, że chcę sprawić żeby to działało, zamiast serii dobrych porad teoretycznych.
erix
21.07.2009, 18:43:21
A mam nadzieję, że rozumiesz, że na gotowca nie masz co liczyć?
Cytat
Już metodą prób i błędów byś próbował inne zmienne podstawiać
enbe
21.07.2009, 19:00:30
Dzięki, że mi nie pomogłeś, możesz zamknąć temat, z pewnością jest wielu innych, którzy chętnie posłuchają "dobrych rad".
P.S. Nie wiem czy konkretną wskazówkę można nazwać gotowcem, choć pewnie tak myślisz.
nospor
22.07.2009, 07:39:12
blad dostajesz, gdyz probujesz wykonac metode fetch_array() na zmiennej, ktora obiektem nie jest. Zawsze ci dzialalo bo query() zwracalo obiekt. Skoro ci teraz query() nie zwrocilo obiektu, znaczy ze zwrocilo ci false a co za tym idzie twoje zapytanie zakonczylo sie bledem. By zobaczyc blad musisz go wyswietlic:
<?php
//....
$pobierz = $db->query($zapytanie);
if (!$pobierz) die('zapytanie: '.$zapytanie.'----blad:'.$db->error); //....
?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.