Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcja Count
Forum PHP.pl > Forum > Przedszkole
maciasgta
  1. <?
  2.  
  3. $zap1 = mysql_query("
  4. SELECT
  5. id_zawodnik, COUNT(*) as ile
  6. FROM
  7. bramki
  8. GROUP BY
  9. id_zawodnik
  10. ORDER BY
  11. ile DESC LIMIT 2
  12. ");
  13.  
  14.  
  15. $rek1 = mysql_fetch_array($zap1);
  16.  
  17. $zap2 = mysql_query("SELECT * FROM zawodnicy WHERE id='".$rek1['id_zawodnik']."'");
  18. $rek2 = mysql_fetch_array($zap2);
  19. echo 'Król strzelców: <b>'.$rek2['imie_nazwisko'].' </b>('.$rek1['ile'].' bramek).<BR>';
  20.  
  21. ?>


Panowie potrzebuje aby funkcja wyświetlała 4 najlepszych strzelców, teraz wyświetla tylko jednego. Próbowałem w pętli for ale coś mi nie wychodziło.

Pozdrawiam
wookieb
  1. SELECT
  2. a.*,
  3. count(b.ile) AS bramek
  4. FROM
  5. zawodnicy a
  6. INNER JOIN bramki b ON (a.id=b.id_zawodnik)
  7. GROUP BY
  8. a.id
  9. ORDER BY
  10. b.ile
  11. LIMIT 2
  12.  

Pokombinuj coś w tym stylu.

//DOWN Upewniłeś się?
jmail
wookieb to: a.* mu nie zadziała. przecież to mysql

  1.  
  2. SELECT
  3. id_zawodnik
  4. ,count(id_zawodnik) bramki_strzelone
  5. FROM
  6. bramki
  7. GROUP BY
  8. id_zawodnik
  9. ORDER BY
  10. bramki_strzelone DESC
  11. LIMIT 4
  12.  


tak powinno być ok
maciasgta
I jak to mam wyświetlić questionmark.gif
wookieb
A z bazy danych z poziomu php umiesz korzystać? Jak nie to jest w przedszkolu temat "LINKI DLA POCZĄTKUJĄCYCH" i radzę to przestudiować bo tym pytaniem zacuchnąłeś totalnym leniem.
maciasgta
Uwierz, jeżeli bym wiedział to bym się nikogo nie prosił winksmiley.jpg) Ale mam dla Ciebie jedną radę, jak nie chcesz pomagać to nie pomagaj, a nie wyzywasz mnie od lenia, według mnie jest to co najmniej niegrzeczne.
erix
Ale gdzie jest Twoja inicjatywa? Wiele osób z programowania się utrzymuje, po to jest giełda ofert. Jeśli oczekujesz pomocy, to wykaż się trochę samodzielnie, a nie szukasz jelenia, który za Ciebie odwali.

Dowiedz się, jak wygląda cegła, dopiero potem buduj mur.
maciasgta
Powtarzam, przed napisaniem postu na waszym forum, próbowałem wielu metod bez skutku i dlatego napisałem tutaj. To zapytanie które podaliście nie zmieniło niczego, ciągle jest wyświetlane to samo jeden użytkownik.

Ok, widzę, że tutaj działacie na zasadzie "łaski". Temat można zamknąć, znajdę pomoc u kogoś innego.
Fifi209
Cytat(maciasgta @ 12.08.2009, 11:03:35 ) *
Powtarzam, przed napisaniem postu na waszym forum, próbowałem wielu metod bez skutku i dlatego napisałem tutaj. To zapytanie które podaliście nie zmieniło niczego, ciągle jest wyświetlane to samo jeden użytkownik.

Ok, widzę, że tutaj działacie na zasadzie "łaski". Temat można zamknąć, znajdę pomoc u kogoś innego.


Dostałeś pomoc lecz z niej nie skorzystałeś, Twój problem. Jeżeli nie wiesz jak to wyświetlić to nie jest Nasz problem.

Co dalej miałem napisać...Skoro próbowałeś wielu metod bez skutku to chociaż mogłeś pokazać w jaki sposób, abyś nie został jak to określiłeś wyzywany od lenia.

Nikt tutaj nie działa na zasadzie "łaski", lecz gotowców nie dostaniemy bo przyjdzie 10 innych użyszkodników jak np. Ty i będą prosili o to samo i nikt się niczego nie nauczy i będzie spam na forum.

Pozdrawiam.
maciasgta
  1. <?
  2.  
  3. $zap1 = mysql_query("
  4. select
  5. id_zawodnik
  6. ,count(id_zawodnik) bramki_strzelone
  7. from
  8. bramki
  9. group by
  10. id_zawodnik
  11. order by
  12. bramki_strzelone desc
  13. limit 2
  14.  
  15. ");
  16.  
  17.  
  18. $rek1 = mysql_fetch_array($zap1);
  19.  
  20. $zap2 = mysql_query("SELECT * FROM zawodnicy WHERE id='".$rek1['id_zawodnik']."'");
  21. $rek2 = mysql_fetch_array($zap2);
  22. echo 'Król strzelców: <b>'.$rek2['imie_nazwisko'].' </b>('.$rek1['bramki_strzelone'].' bramek).<BR>';
  23.  
  24. for($i=0; $i<2; $i++)
  25. {
  26. echo 'Król strzelców: <b>'.$rek2['imie_nazwisko'].' </b>('.$rek1['bramki_strzelone'].' bramek).<BR>';
  27. }
  28.  
  29. ?>
  30.  



Wyświetla dwóch takich samych graczy, zamiast dwóch innych.

Nie mam już pomysłu co jest nie tak, chce aby wyswietlał dwóch różnych o największej liczbie bramek.
wookieb
Powiedz mi czy naprawdę tak trudno ruszyć leniwy zad do manuala??
http://pl2.php.net/mysql_fetch_assoc JEST NAPISANE WSZYSTKO CO POTRZEBUJESZ
Daiquiri
Bo wyświetlasz tylko pierwszy wynik w pętli for. Zauważ, że nie korzystasz z np. indeksu jakim jest $i (więc po co Ci w tym przypadku pętla?)

Jeżeli mam coś w tablicy $zawodnicy to moją pętla mogłaby mi to wyświetlać tak:

  1. for($i=0; $i<2; ++$i) {
  2. echo "Moi zawodnicy to: " . $zawodnicy[$i];
  3. }


Czy nie byłoby łatwiej pobrać te dane odpowiednim zapytaniem, następnie wyświetlać je za pomocą while?
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.