Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Funkcja Count
maciasgta
post 12.08.2009, 09:06:48
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 12.01.2008

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


  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
Go to the top of the page
+Quote Post
wookieb
post 12.08.2009, 09:20:19
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  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ę?

Ten post edytował wookieb 12.08.2009, 09:32:19


--------------------
Go to the top of the page
+Quote Post
jmail
post 12.08.2009, 09:31:24
Post #3





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

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


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
Go to the top of the page
+Quote Post
maciasgta
post 12.08.2009, 10:00:11
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 12.01.2008

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


I jak to mam wyświetlić questionmark.gif
Go to the top of the page
+Quote Post
wookieb
post 12.08.2009, 10:14:28
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.


--------------------
Go to the top of the page
+Quote Post
maciasgta
post 12.08.2009, 10:38:15
Post #6





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 12.01.2008

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


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.
Go to the top of the page
+Quote Post
erix
post 12.08.2009, 10:45:23
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
maciasgta
post 12.08.2009, 11:03:35
Post #8





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 12.01.2008

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


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.
Go to the top of the page
+Quote Post
Fifi209
post 12.08.2009, 12:09:24
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
maciasgta
post 12.08.2009, 21:33:13
Post #10





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 12.01.2008

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


  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.
Go to the top of the page
+Quote Post
wookieb
post 12.08.2009, 21:44:58
Post #11





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Powiedz mi czy naprawdę tak trudno ruszyć leniwy zad do manuala??
http://pl2.php.net/mysql_fetch_assoc JEST NAPISANE WSZYSTKO CO POTRZEBUJESZ


--------------------
Go to the top of the page
+Quote Post
Daiquiri
post 12.08.2009, 21:53:22
Post #12





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 06:25