![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 3 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, zawsze gdy zwracam mysql_fetch_assoc z funkcji i przepuszczam go przez pętlę while otrzymuje nieskończoność razy wypis pierwszego rekordu.
Macie jakieś pomysły jak to rozwiązac? Można puścic pętle for, ale to chyba zły i obciążający pomysł? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 15 Dołączył: 29.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
mysql_fetch_assoc, zwraca tablice asocjacyjną rekordu wyniku i przesuwa index o 1, zatem poprawnie będzie
zwraca tabelę id1 => (a1,b1,c1,d1) id2 => (a2,b2,c2,d2) id5 => (a5,b5,c5,d5) wersja bez id zwraca tabelę [0] => (id1,a1,b1,c1,d1) [1] => (id2,a2,b2,c2,d2) [2] => (id5,a5,b5,c5,d5) OT: Pętla for jest dobrym rozwiązaniem, gdy chcesz modyfikować każdy rekord, ponieważ foreach pracuje na kopii. For nie jest obciążające, chyba, że wpadniesz na pomysł liczenia wielkosci tabeli w kazdej iteracji (slynne for($i=0;$i<count($tabela);$i++) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ). No i raczej for dla tablicy asocjacyjnej to kiepski pomysl (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował rybik 31.07.2008, 13:37:04 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 3 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie chodziło do końca o to, ponieważ mam funkcje w klasie, i nie chce jej tutaj wlepiać.
Pewnie będę musiał zrobić pętle for... Ma ktoś inne rozwiązanie, bez przesuwania funkcji? Ten post edytował Victor152 31.07.2008, 14:22:03 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 15 Dołączył: 29.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
mowie Ci po prostu, że mysq_fetch_assoc zwróci tylko 1 rekord jeżeli nie jest użyte w pętli, więc poszerz sobie funckję get_arr_fo->cat() tak, żeby nie zwracała 1 rekordu tylko tablicę
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 3 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czyli?
zapisywac wczesniej mysql_fetch_array w zmienna i dopiero zwrócic? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 15 Dołączył: 29.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
mysql_fetch_array tak naprawde robi "mysql fetch next row of array" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
masz w ręku funkcję, która bierze rekord i przesuwa indeks tablicy-zasobu oraz zasoby, teraz możesz to przepuścić przez while i przepisac do tablicy lub tablicy asocjacyjnej tak jak opisałem wcześniej a gdzie to umieścisz w kodzie to juz wedle uznania |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 3 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przykładem nie pogardzę...
Prosiłbym o przykład, bo nie wiem jak to zwrócić poprawnie. :/ |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 3 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie pomogło mi to zbytnio.
|
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 3 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
A w kodzie normalnie while?
#Edit: To samo, nie pomogło, moze pokażcie swoje funkcje, któe zwracają fetch_assoc?! #Edit2: czy ktoś pomożę? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 42 Dołączył: 12.08.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem w czym masz problem ? Kod:
Nie zwraca Ci tablicy ze wszystkimi wynikami ? Jakaś magia. Ten post edytował golaod 12.08.2008, 15:01:21 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 105 Pomógł: 3 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zaużmy, że zwraca, jak to potem przetworzyć?
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 15:44 |