![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 168 Pomógł: 0 Dołączył: 12.11.2005 Skąd: Bulowice nearby Wadowice (E), Oświęcim (W) Ostrzeżenie: (0%)
|
Właśnie zauważyłem bezsensowność mojego kodu. Nie mam pomysłu jak go poprawić:
Podając nazwę kolumny i numer wiersza, zwraca wynik. Miała mi uprościć życie, bo podaje ją w pętli. Dopiero jak dałem ją do pętli, która pobiera całość (ok. 9 kolumn, 21 rekordów [9*21= 189 zapytań]) to zauważyłem, że znacznie spadła wydajność skryptu. Podejrzewm, że wrzucając zapytanie do osobnej funkcji, również bedzie się wykonywała tyle razy ile jest iteracji w pętli. Jest jakieś rozwiązanie tego problemu? (Nie chodzi mi o takie, jakie jest kilka topiców niżej w temacie "cache", pliki odpadają) |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%)
|
Nie wiem czy dobrze Ciebie zrozumiałem...
Za każdym razem łączysz się z bazą i zamykasz połączenie - bez sensu - strata wydajności. Aby pobrać rekordy raz połącz się z bazą i dane wyciągaj w pętli
Łukasz EDIT a jeśli już musisz wykontywać coś takiego w pętli to połącz się z bazą i rozłączaj poza funkcją którą wykonujesz w pętli Ten post edytował kossa 31.08.2006, 18:07:12 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 168 Pomógł: 0 Dołączył: 12.11.2005 Skąd: Bulowice nearby Wadowice (E), Oświęcim (W) Ostrzeżenie: (0%)
|
Zrobię, tak jak pisałeś. Żebyś lepiej mnie zrozumiał podam ci przykład do powyższej funkcji:
Teraz funkcja zwracana np. kolumnę authors, o podanym numerze $i, ale co z tego jak za każdym razem, jest wykonywane zapytanie do MySQL'a, a przecież można wykonać (chyba) 1x zapytanie, a potem operować w pętli tylko na zwróconym przez zapytanie "zasobie". Tylko właśnie nie potrafie czegoś takiego wymyślić. Ten post edytował Coolmax 31.08.2006, 22:22:01 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%)
|
Cytat Teraz funkcja zwracana np. kolumnę authors, o podanym numerze $i, ale co z tego jak za każdym razem, jest wykonywane zapytanie do MySQL'a, a przecież można wykonać (chyba) 1x zapytanie, a potem operować w pętli tylko na zwróconym przez zapytanie "zasobie". Tylko właśnie nie potrafie czegoś takiego wymyślić. Przyznam się, że wciąż nie rozumiem... albo napisałeś znowu niezbyt jasno albo ja już po całym dniu klepania w klawiaturę nie kojarzę zbyt dobrze. Mając $i możesz tylko raz pobrać z bazy potrzebny rekord
Nie rozumiem, co masz na myśli aby później coś w pętli wykonywać. Mając zwrócony rekord możesz już z nim zrobić wszystko. Co chcesz zrobić - napisz jaśniej. Łukasz |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 168 Pomógł: 0 Dołączył: 12.11.2005 Skąd: Bulowice nearby Wadowice (E), Oświęcim (W) Ostrzeżenie: (0%)
|
Mi chodzi tylko o to aby w funkcji data:
używanej za każdym razem w pętli, nie trzeba było wysyłać zapytania za każdym razem, czyli w $reslut, są wszystkie rekordy, które w kolumnie active mają wartość 1. To zapytanie chciałem, żeby było wykonanywane tylko raz, bo w nim jest już wszystko to, czego potrzebuję, następnie funkcją data operować na tych danych. Ten post edytował Coolmax 1.09.2006, 10:48:00 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%)
|
pisałem Tobie wcześniej tu co jest tu powyżej - wszystko raz wybierasz i w $result masz wszystko Łukasz |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 07:15 |