Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pobranie 17 najlepszych wyników .
Forum PHP.pl > Forum > Przedszkole
Giluś
Cześć mam bazę danych w której zapisuję 3 czasy (trening, trening 2, wyścig) i chciałbym zrobić coś takiego:
Stworzyłem sobie 3 podstrony na wyświetlanie czasów z tych zawodów.
1 Strona: Pokazuję czasy, wszystkich zawodników którzy jechali w "Trening" no to tutaj proste zapytanie od mysql i pętle while/for
2 Strona: Pokazuję czasy jakie osiągnęli w "Trening 2", ale TYLKO dla 17 PIERWSZYCH czasów z "Trening" i tego własnie nie wiem jak zrobić, potrafię pobrać te 17 wyników i posortować je, ale jak zrobić żeby pokazały się tylko te czasy z (MySQL) Trening2, które w Trening były do 17 miejsce posortowane od najlepszego do najgorszego. - Troszkę chaotycznie napisane, ale myślę że zrozumiecie, a jak to pytajcie.
3 Strona: Pobiera czasy wszystkich zawodników którzy jechali w "Wyścig" tutaj tak samo prosto jak w 1 stronie.


Pozdrawiam i oczywiście bedą "Pomogł" dla każdego postu.
croc
2.
  1. SELECT trening2 FROM tabela ORDER BY trening1 ASC LIMIT 17

3.
  1. SELECT wyscig FROM tabela WHERE wyscig IS NOT NULL ORDER BY wyscig ASC


O ile dobrze zrozumiałem i o ile dobrze założyłem, że pola mają NULL, kiedy ktoś nie brał udziału w danym etapie.

P.S. Dawanie "pomógł" dla każdego postu przynosi więcej szkody niż pożytku smile.gif
Giluś
Coś musi być zle ponieważ:

http://iv.pl/images/26878312824129948225.png - To jest TRENING
a to jest:
http://iv.pl/images/34501828036481057942.png - TRENING 2.

Niby już wszystko super, a tu jedna pomyłka, a kod dałem dobry:
  1. SELECT * FROM tabela ORDER BY `trening` ASC LIMIT 17


Ma ktoś jakiś jeszcze pomysł ?
croc
Musisz dokładniej opisać problem i powiedzieć co chcesz osiągnąć, bo nie wiem co jest źle.
Giluś
Chce zrobić coś takiego:

Wcześniej wpisałem do mysql czasy.
Pierwszy obrazek - tam gdzie jest 24 zawodnicy (wszystkie pola zapełnione) - To jest TRENING tutaj jest taki kod;
  1. SELECT * FROM tabela ORDER BY `trening` ASC


Drugi obrazek - tam ma być pierwsze 17 Zawodników (w takim układzie jak na obrazku ASC), czyli od 1 miejsca do 17 miejsca ale mają być pobierane czasy z TRENING2 i mają być tak samo posortowani w ASC, tam był błąd bo się pokazywał jeden czas który był za 17 miejscem chyba na miejscu chyba 19-20.

Trzeba by jakoś zrobić zapytanie tak:

" Wyszukaj w tabeli 17 Pierwszych wyników `Trening`(posortowane w ASC) I posortuj wyniki z Trening2 w ASC " - Coś takiego, ale nie wiem jak to zrobić



Edit: A taki kod jak ty dałeś to były takie same miejsce na w Trening tylko inne czasy.

Edit: tam pokazałem zły obrazek.. ale były takie same miejsca tylko inne czasy..
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.