Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Zliczenie ilości aż do momentu
Forum PHP.pl > Forum > Przedszkole
alogator
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?
Noidea
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()
alogator
smile.gif
Jest już połowiczny sukces 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 ?
Noidea
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
alogator
Noidea - idealnie - dzięki za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.