Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL] Problem z "Call to a member function fetch_array"
enbe
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.07.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




zapewne trzeba to użyć tak...
  1. <?php
  2. while($dane = $db->fetch_array($pobierz)) {
  3. ?>

Przy pomyślnych wiatrach bez argumentu.
Go to the top of the page
+Quote Post
enbe
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.07.2009

Ostrzeżenie: (0%)
-----


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

Ten post edytował enbe 21.07.2009, 14:52:04
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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...
Go to the top of the page
+Quote Post
enbe
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.07.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




To pokaż, gdzie szukałeś. (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
enbe
post
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.07.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
mysqli_result::fetch_array

Zwróć uwagę na kontekst.
Go to the top of the page
+Quote Post
enbe
post
Post #9





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.07.2009

Ostrzeżenie: (0%)
-----


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.

Ten post edytował enbe 21.07.2009, 17:03:39
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




To proponuję kurs PHP Obiektowego...

W skrócie: obiekt->metoda. U Ciebie jest zły obiekt, bo w nim nie ma tej metody.
Go to the top of the page
+Quote Post
enbe
post
Post #11





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.07.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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ć
Go to the top of the page
+Quote Post
enbe
post
Post #13





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.07.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 21:53