![]() |
![]() |
-nickkk- |
![]()
Post
#1
|
Goście ![]() |
Witam,
Mam zapytanie do bazy, w którym wyciagam nazwy użytkowników online: Kod o_online nazwau1 nazwau2 nazwau3 Chciałbym zapisać każdy element tablicy do zmiennej i ją wyświetlić: foreach ($fetch as $klucz => $user) { echo $user; } Niestety zwraca mi tylko pierwszy element z tablicy $fetch. Co robię źle? Inny problem. Chcę wyświelić te same dane w innych sposób: Kod while ($fetch = $db_uchwyt->fetch_array(MYSQLI_ASSOC)) { echo $fetch['o_login']; } Wyświetla mi wszystkie elementy tablicy, poza pierwszym na liście czyli np. nazwau1. Tablicę wcześniej zresetowałem. Po zresetowaniu funkcja current() pokazuje aktualny element jako nazwau1, czyi problem poprawnego zapytania odpada. Gdzie robię błąd z tymi dwoma pętlami? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat Chciałbym zapisać każdy element tablicy do zmiennej i ją wyświetlić: foreach ($fetch as $klucz => $user) { echo $user; } Niestety zwraca mi tylko pierwszy element z tablicy $fetch. Skoro zapytanie zwraca tylko jedną kolumnę, to tablica $fetch będzie miała tylko jeden element. Pętla działa w tym przypadku poprawnie. Cytat Inny problem. Chcę wyświelić te same dane w innych sposób: Kod while ($fetch = $db_uchwyt->fetch_array(MYSQLI_ASSOC)) { echo $fetch['o_login']; } Wyświetla mi wszystkie elementy tablicy, poza pierwszym na liście czyli np. nazwau1 Najprawdopodobniej gdzieś wcześniej wywołujesz już $db_uchwyt->fetch_array() i w pętli zaczyna ci pobierać wyniki zapytania od drugiego wiersza. -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
-nikk- |
![]()
Post
#3
|
Goście ![]() |
Tylko, że ta sama tablica $fetch w while jest wyświetlana od poczatku do końca, natomiast w pętli foreach tylko jeden element (pierwszy) chociaż tablica posiada np. dwa elementy. Nie mam pojęcia dlaczego nie działa to na bazie danych, bo przykłady z manuala PHp wykonuje mi poprawnie. Może robię gdzieś błąd w metodzie? Zamieszczam w razie czego całą metodą z klasy i proszę o poradę:
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
To popatrz na takie czary:
Cztery razy wykonuję identyczną linijkę kodu i za każdym razem otrzymuję inny wynik. Jedno wywołanie metody $db_uchwyt->fetch_array() wyświetla tylko jeden wiersz danych, a nie od razu cały wynik zapytania. Przy pętli foreach metodę $db_uchwyt->fetch_array() wywołałeś raz, więc dostałeś jeden wiersz. Natomiast przy while metoda fetch_array() wywoływana była za każdym razem gdy sprawdzany był warunek pętli:
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 10:47 |