ghastblood
23.08.2012, 12:22:20
Mam tabele w której przetrzymuje dane zawodnika i chciał bym na każde zawody przypisywać od nowa nr. startowy czyli dodaje do 2 tabeli id_zawodnika i zawody w jakich bierze udział to sprawdza mi ostatni nr. startowy z tych zawodów i daje mu kolejny czyli jak np jest 10 zawodników to sprawdzi że ostatni nr startowy to 10 i kolejnemu doda nr 11 do tej pory korzystałem z A_I ale to wiąże się z czyszczeniem całej bazy po zawodach a chciał bym te dane archiwizować czyli wygląd nowej tabeli wyglądał bym tak
ID_ZAWODNIKA,ID_ZAWODOW,NR_STARTOWY
1,1,1
2,1,2
50,1,3
25,2,1
12,2,2
Gdzie ID_ZAWODNIKA przetrzymuje w tabeli z zawodnikami, ID_ZAWODOW w tabeli z nazwą zawodów a NR_STARTOWY zostaje przypisany automatycznie do każdego ID_ZAWODOW
jak takie coś mogę osiągnąć jakoś powiązać NR_STARTOWY z ID_ZAWODOW i wtedy A_I działa dla poszczególnego rekordu czy jak ?
nospor
23.08.2012, 12:25:01
Nie wiem co kryje się pod tajemniczym skrótem A_I ale czy nie możesz poprostu pobrać z tabeli największego numeru startowego?
Zapytanie banalne:
select max(numer_startowy) from tabela.
ghastblood
23.08.2012, 13:51:48
sorki przyzwyczajenie z phpmyadmin
A_I - auto_increment
hmm pobranie max nr startowego to mogło by być rozwiązaniem ale
jak rozwiązać sprawę z nie używanymi rekordami z poprzednich zawodów.
tabele wyniki przetrzymuje mi id_zawodnika oraz id_zawodow w jakich brał udział tak samo tabela z konkurencjami w tabeli zawodnik przechowuje dane zawodnika i do tej pory jego ID było jego nr startowym przez dodanie systemu archiwizacji przy prowadzeniu nowych zawodów muszę skasować wszystkich zawodników i wpisać od nowa innych przez co walnie mi się całe archiwum z poprzednich zawodów bo zmienią się nazwiska i imiona zawodników pod danym ID. Rozwiązaniem było by kopiowanie istniejących rekordów z nazwiskiem i imieniem do innej tabeli która by przetrzymywała id_zawodnika id_zawodow oraz nr. startowy jak pobiorę max nr startowy i dodaj 1 to wcale nie muszą być to aktualne zawody tylko to będę zawody gdzie było więcej zawodników. Powiedz mi czy sprawdziło by się jak bym w ustawieniach programu wpisywał aktualną ID zawodów i wtedy mógł bym pobrać max nr startowy WHERE id_zawodów = zapytanie do tabeli z ustawieniami o aktualne id_zawodow.
nospor
24.08.2012, 06:31:50
Tabela user:
ID
Imie
Nazwisko
.....
Tabela zawody:
ID
DATA
....inne
tabela user_zawody
ID_USERA
ID_ZAWODY
NR_STARTOWY
wyliczanie max:
select max(NR_STARTOWY) from user_zawody where ID_ZAWODY=zadane_zawody