![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 28.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jako, że to mój pierwszy post to na początek się przywitam. Witam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Mam problem, z którym od dłuższego czasu nie mogę sobie poradzić mimo przeglądania forum oraz list dyskusyjnych.
Jak zapewne domyślacie się z kodu, mam bazę zawodników i chcę wyciągnąc listę graczy z najlepszymi średnimi. Zapytanie chodzi "tak sobie" jeżeli użyje klauzuli GROUP BY, ale nie mogę go używać bo nie o takie sortowanie mi chodzi, po drugie, baza wyciąga nie najlepze średnie a po prostu najlepsze jednorazowe wyniki punktowe danego zawodnika. Chodzi o to by podliczyć wszystkie punkty danego zawodnika z bazy i potem wyciągnąć z tego średnią. Moje zapytanie nie działa w ten sposób po prostu nie umiem robić sumy punktów dla danego gracza, oczywiście można zastosować np. WHERE zawodnik=1 itd., ale wtedy się wyśwetli tylko jeden zawodnik, a ja chcę by było ich więcej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Mam nadzieję, że moje tłumaczenie nie jest zbyt zawiłe. Będę bardzo wdzięczny za wskazówki bo mi już pomysły się skończyły. Ten post edytował Kwiatol 28.01.2006, 14:36:29 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Jest błąd przy GROUP BY, zwróć uwagę na kolorowanie składni:
Masz:
powinno być
ponieważ są to pola , a nie wartości tekstowe. Drugi błąd:
To również nie jest źle, ale (dla porządku) powinienieś albo używać aliasów albo pełnych nazw tabel rpzy kolumnach. Teraz może i działa, ale jak kiedyś dodasz jedno pole o tej samej nazwie , to wszystko sie pomiesza i nie dojdziesz gdzie jest błąd (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Cytat Teraz problem jest taki jak w jednym zapytaniu (czy da się w ogóle) pokazywać tych zawodników, którzy rozegrali przynajmniej 10 meczów. Najpierw trzeba policzycz wszystkie mecze z bazy, a później zrobić mecz_id>10. Jeśli ktoś wie jak to zrobić w jednym zapytaniu będę wdzięczny za odpowiedź. Nie wiem dokładnie o co chodzi (nie napisałeś czy jest to kolumna, wynik funkcji czy coś innego) ale są dwa wyjsćia:
albo dodać odpowiedni warunek w WHERE. Btw, ważna uwaga - pamiętaj o używaniu mysql_escape_string i/albo intval, jeżeli musisz przekazywać parametry między stronami. Ten post edytował spenalzo 1.02.2006, 11:44:45 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 15:07 |