Jak to zrobić? pytanie skierowane do doświadczonych...

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Crom
Posty: 1
Rejestracja: śr paź 21, 2009 4:50 pm

Jak to zrobić? pytanie skierowane do doświadczonych...

Post autor: Crom »

Witam,

Zrobiłem wtyczkę do PHP-Fusion, która umożliwia dodawanie, przeglądanie i zarządzanie czasami tras, które pokonało się załóżmy w NFS Shift. Co chcę zrobić? Chcę, aby w profilu każdego użytkownika zapisane było najlepsze miejsce na danej trasie. Np. jego rekord to 1:42:309, a najlepszy to 1:39:300. No i jego rekord pod względem czasu jest 4. Obecnie tak wygląda tabela rekordów:

records
  • record_id
    record_track_id
    record_driver
    record_minutes
    record_seconds
    record_miliseconds
    record_car
    record_screen
    record_status
    record_date
Podczas dodawania rekordu, dodawane jest ID trasy, kierowca, minuty , sekundy i milisekundy okrążenia itd. Gdy ktoś chce sprawdzić obecne czasy danej trasy, to za to odpowiada taki skrypt:

Kod: Zaznacz cały

$sql = dbquery("SELECT * FROM `records` WHERE `record_track_id` = '".$track['track_id']."' AND `record_status` = '1' ORDER BY record_minutes, record_seconds, record_miliseconds");
No i skrypt bierze je segreguje w ten sposób według czasów. A miejsca jaki obecny rekord zajmuje są wyświetlane w taki sposób:

Kod: Zaznacz cały

$i = 1;
echo $i++;
W ten sposób pierwszy rekord ma miejsce 1, drugi 2 i tak dalej...


Tak więc teraz moje pytanie, a zarazem prośba. Jak zrobić, aby rekordy danego użytkownika były wyświetlane wraz z obecnie zajmowanym miejscem. Czyli jeśli jego rekord znajduje się na miejscu 4 to wyświetli 4 miejsce... Nie wiem... Dorobić jeszcze jedną tabelę? Zmodyfikować istniejące? Gdzie to się będzie zapisywało i jak modyfikowało, gdy zostanie dodany lepszy rekord, bo wtedy jego będzie już na 5 miejscu, tak więc wszystko musi śmigać... Nie wiem jak do tego podejść... Proszę o pomoc.

Pozdrawiam,
Crom
szczypior
Nowy
Nowy
Posty: 46
Rejestracja: pn lut 26, 2007 1:38 pm
Kontakt:

Re: Jak to zrobić? pytanie skierowane do doświadczonych...

Post autor: szczypior »

Możesz policzyć ilość rekordów unikalnych użytkowników, którzy mają lepszy czas od tego osiągniętego przez daną osobę. W ten sposób będziesz miał jego miejsce na liście top.
ODPOWIEDZ