![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 1 Dołączył: 5.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Kompletnie nie mam pomysłu jak to rozegrać. Postaram się to przedstawić jak najlepiej. Baza wygląda tak: ---user_id--------points--- -----1-------- 2, 4, 5, 1, 1 -----2-------- 1, 1, 1, 1, 1 -----3-------- 4, 5, 7, 2, 1 -----4-------- 1, 1, 1, 9, 9 Czyli jest 4(lub więcej) użytkowników i każdy ma jakieś tam punkty. Co chcę uzyskać to: żeby skrypt wyciągnął z bazy wszystkich użytkowników i policzył im ile każdy ma punktów "1". Czyli: user 1 ma 2 x 1 -> 2 user 2 ma 5 x 1 -> 5 user 3 ma 1 x 1 -> 1 user 4 ma 3 x 1 -> 3 Dodatkowo ! Każdy user ma swój login. I chcę by po zalogowaniu widział on wszystkie punkty, ale żeby nie było zdradzone czyje to są punkty (oprócz niego samego). Czyli: user 3 po zalogowaniu widzi 5 3 2 1 <- To są twoje punkty a user 4 widzi: 5 3 <- To są twoje punkty 2 1 To tyle, bardzo proszę o podsuwanie pomysłów (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Teraz zauważyłem, że to nie konkatenacja tylko zwykle dodawanie (IMG:style_emoticons/default/smile.gif) Zauważ, że to tak naprawdę pętla gdzie sprawdza ile razy wystąpiła w rundzie jedynka ( $wydziel ) i dodaje to wciąż do zmiennej $policz. Musisz więc sie do niej odwołać po zakończeniu pętli. Jako że jest ona zmienną lokalną dla while, to po zakończeniu pętli jest ona niszczona. Dlatego musisz minimalnie zmienić poprzednią część do postaci:
Dzięki deklaracji i inicjalizacji $policz jeszcze przed pętlą, możemy się po zakończeniu pętli do niej odwołać. Sprawdź sobie zresztą na kod a sam dojdziesz do wniosku, że to nie array, nie string, a poczciwy int, ale wielokrotnie wypisany na ekran (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 03:10 |