Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Zliczenie ilości aż do momentu
alogator
post
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


Witajcie mam baze danych
przyjmijmy że najłatwiej będzie to opisać na przykłądzie wyników meczy

LP. |POLSKA | INNE
1 |0 | 1
2 |0 | 1
3 |0 | 1
4 |0 | 1
5 |1 | 0
6 |1 | 0
7 |0 | 1

chciałbym zliczyć jak długo trwała dobra passa innych zespołów zanim została przerwana porażką ( 1 zwycięstwo, 0 porażka)
Nie wiem jak to ugryźć - jakieś propozycje?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Noidea
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


Pobierz sobie z tej tabeli wartości INNE posortowane po LP. i:
  1. <?php
  2.  
  3. $lastResult = 0;
  4. $victoryCount = 0;
  5. $maxVictoryCount = 0;
  6.  
  7. // zapytanie
  8.  
  9. while( $row = mysql_fetch_assoc( $result ) )
  10. {
  11. if( $row['INNE'] == 1 )
  12. {
  13. $victoryCount++;
  14. }
  15. else
  16. {
  17. if( $lastResult == 1 )
  18. {
  19. $victoryCountMax = max( $victoryCountMax, $victoryCount );
  20. $victoryCount = 0;
  21. }
  22. }
  23.  
  24. $lastResult = $row['INNE'];
  25. }
  26.  
  27. if( $victoryCount > 0 )
  28. {
  29. $victoryCountMax = max( $victoryCountMax, $victoryCount );
  30. }
  31.  
  32. ?>

Pisane z palca, więc mogą być błędy.


Bezpośrednio w MySQL też da się do zrobić. Poczytaj to: http://nospor.pl/indeks-kontra-podzapytanie.html oraz MAX()
Go to the top of the page
+Quote Post
alogator
post
Post #3





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


(IMG:style_emoticons/default/smile.gif)
Jest już połowiczny sukces (IMG:style_emoticons/default/smile.gif)
  1. if( $victoryCount > 0 )
  2. {
  3. $victoryCountMax = max( $victoryCountMax, $victoryCount );
  4. echo " $victorycountMax";
  5.  
  6. }
  7.  
  8. ?>
  9.  
  10.  
  11.  


Wrzuciłem w tą linijke echo i wyrzuca mi najlepszą passa z całej bazy i fajnie - też się przyda - natomiast chciałbym jeszcze aby tylko do porażki wyrzucał - gdzie echo wstawić i w jakiej postaci ?
Go to the top of the page
+Quote Post
Noidea
post
Post #4





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


Po pierwsze to echo powinno być za tym ifem, nie w środku.

Nie wiem co znaczy "tylko do porażki wyrzucał". Ma liczyć zwycięstwa przeciwnej drużyny do pierwszej porażki? Jeśli tak, to przerób ten kod, żeby w pętli sprawdzał, czy $row['INNE'] jest równe 1. Jeśli tak, to zwiększasz $victoryCount, jeśli nie (pierwsza porażka), to wychodzisz z pętli break
Go to the top of the page
+Quote Post
alogator
post
Post #5





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 13.11.2006
Skąd: Sosnowiec

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


Noidea - idealnie - dzięki za pomoc (IMG:style_emoticons/default/smile.gif)
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: 29.09.2025 - 02:44