![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Bardzo proszę o pomoc w rozwiązaniu następującego problemu. Algorytm jak dla mnie jest skomplikowany dlatego przedstawię oczekiwany sposób działania skryptu PHP opisowo i na rycinie. Etap 0: Pobieramy 3 ostatnie rekordy z bazy danych z polami: ID, windseed (ten etap uzyskałem) Etap 1: Jeżeli w najnowszym rekordzie nr 1 wartość "windspeed=0" nic nie rób (koniec) Etap 2: Jeżeli w najnowszym rekordzie nr 1 wartość "windspeed>0" np. 5, zbadaj wartość "windspeed" w rekordzie nr 2. Etap 3: Jeżeli w rekordzie nr 2 wartość "windspeed>0" np. 3 nic nie rób (koniec) Etap 4: Jeżeli w rekordzie nr 2 wartość "windspeed=0", zbadaj wartość "windspeed" w rekordzie nr 3. Etap 5: Jeżeli w rekordzie nr 3 wartość "windspeed=0" nic nie rób (koniec) Etap 6: Jeżeli w rekordzie nr 3 wartość "windspeed>0" np. 7, wylicz średnią "windspeed" z rekordu nr 1 (5) i nr 3 (7) i wpisz ją (update) w miejsce 0 w rekordzie nr 2 "windspeed=6" Oczekiwany sposób działania skryptu PHP Dziękuję za pochylenie się nad tematem i pozdrawiam zbysiusp |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Problem rozwiązany. Algorytm działa jak należy. Mam 15 if-ów (IMG:style_emoticons/default/biggrin.gif) Dziękuję za zainteresowanie. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
A więc pochwal się.
Inni może coś się nauczą (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
A więc pochwal się. Inni może coś się nauczą (IMG:style_emoticons/default/biggrin.gif) 1. Pobieramy najnowszy rekord z bazy danych z polami ID i windspeed w celu ustalenia indeksu wyjściowego (ID). 2. Pobieramy trzy najnowsze rekordy z bazy danych z polami jak wyżej. 3. W pętli while (3 obiegi) odczytujemy wartość windspeed dla kolejnych 3 wartości ID dekrementując ją (ID, ID-1, ID-2). 4. Wszelkie dalsze działania uzależniamy od spełnienia warunku (windspeed0>0 && windspeed1=0 && windspeed2>0). 5. Gdy warunek zostaje spełniony obliczamy nową wartość windspeed1 ((windspeed0+windspeed2)/2. 4. Wykonujemy update drugiego rekordu z nową wartością windspeed1 i gotowe. (IMG:style_emoticons/default/biggrin.gif) Pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
Pokaż kod.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Problem rozwiązany. Algorytm działa jak należy. Mam 15 if-ów (IMG:style_emoticons/default/biggrin.gif) Dziękuję za zainteresowanie. 15 IF-ów ? (IMG:style_emoticons/default/dostal.gif) (IMG:style_emoticons/default/worriedsmiley.gif) (IMG:style_emoticons/default/blink.gif) Przecież wystarczy Ihmo tylko tyle:
Ten post edytował Pyton_000 15.02.2017, 09:51:41 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 11.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
15 IF-ów ? (IMG:style_emoticons/default/dostal.gif) (IMG:style_emoticons/default/worriedsmiley.gif) (IMG:style_emoticons/default/blink.gif) Dziękuję bardzo za kod. Wyszło tyle IF-ów bo oprócz windspeed dorzuciłem jeszcze 4 inne zmienne, ale z pewnością przekombinowałem. Zamieszczam mój kod. Spójrz proszę na niego fachowym okiem i oceń.
Pozdrawiam |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
1. nie uzywaj mysql_*. Pokazalem Ci przykład z PDO.
2. Sprawdzanie "$wynik_id-1" jest błędne bo co jak będziesz miał ID 6, 8, 11 (IMG:style_emoticons/default/questionmark.gif) Tak nie bardzo rozumiem po co te 1-sze zapytanie wyciągające ID. Weź sobie mój kod i dopisz tylko wyliczanie pozostałych wartości i zapisanie zaktualizowanie ich. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
@Python
On pobiera ID, a potem tworzy 3 zmienne z wynikami, gdzie jeden odpowiada znalezionemu, kolejne to poprzednie wyniki. Dlatego jak ma ID = 10, to drugie zapytanie da mu rekordy z ID 10, 9 i 8. @Zbysiu Dlatego lepiej zamiast tych 15 IF zrobić, 3 CASE'y?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tomplus nie da jeśli będzie dziura w numeracji ID.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Masz rację. Zauważyłem ten mankament, ale przyjmuje że dostarcza pełny wypis danych z JSONa który pokazywał kolega kilka miesięcy temu.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:43 |