Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Problem z "Call to a member function fetch_array"
Forum PHP.pl > Forum > Przedszkole
enbe
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

  1. <?php
  2. function nazwa_wartosc ($nazwa) {
  3.    global $db;
  4.    $zapytanie = "SELECT * FROM `".DB_PREFIX.$nazwa."`";
  5.    $pobierz = $db->query($zapytanie);
  6.    
  7.    while($dane = $pobierz->fetch_array()) {    
  8.        $t_lista[$dane['nazwa']] = $dane['wartosc'];    
  9.    }
  10.    
  11.    
  12.    print_r ($t_lista);
  13. }
  14. ?>


Próbowałem na różne sposoby, ale skończyły mi się pomysły.
wookieb
zapewne trzeba to użyć tak...
  1. <?php
  2. while($dane = $db->fetch_array($pobierz)) {
  3. ?>

Przy pomyślnych wiatrach bez argumentu.
enbe
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
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
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
To pokaż, gdzie szukałeś. snitch.gif
enbe
No np. tu: http://php.net.pl/manual/pl/mysqli-result.fetch-array.php
Albo 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
Cytat
mysqli_result::fetch_array

Zwróć uwagę na kontekst.
enbe
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
To proponuję kurs PHP Obiektowego...

W skrócie: obiekt->metoda. U Ciebie jest zły obiekt, bo w nim nie ma tej metody.
enbe
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
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
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
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:

  1. <?php
  2. //....
  3. $pobierz = $db->query($zapytanie);
  4. if (!$pobierz) die('zapytanie: '.$zapytanie.'----blad:'.$db->error);
  5. //....
  6. ?>
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.