![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 23.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Piszę obecnie skrypt do zarządzania zleceniami. Zlecenia napływają z 4 rejonów (I, II, III, IV). Każdy z rejonów ma mieć własną numerację w stylu: kolejny numer/rejon/rok np 458/III/2011, 123/II/2011 itp. Tak wygląda formularz: ![]() A tak struktura bazy: ![]() Obecnie wybieram rejon, a numer na podstawie id jest dodawany automatycznie. Tylko że jest to kolejny numer dla wszystkich rejonów. Pytanie: Jak zrobić, aby po wybraniu rejonu, wypełnieniu formularza, podczas zapisu do bazy zapisał się kolejny numer w obrębie danego rejonu ? Czy można to zrobić przy jednej tabeli za zleceniami, czy muszę stworzyć 4 odrębne ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 5 Dołączył: 26.01.2011 Ostrzeżenie: (40%) ![]() ![]() |
zaloz locka na tabele, wybierz najwiekszy numer dla danego regionu; utworz nowy numer; zapisz do bazy; zdejmij locka
I nadal jedna tabela wystarczy. Oczywiscie musisz usunac primary key z id_zlec z oczywistych powodow (ale unique moze juz byc na id_zlec + id_rejonu PS: zawsze mi sie podobaja "optymalizacje" typu "zlec" zamiast "zlecenie". Poza tym po co "_zlec" w ogole, skoro tabela "zlecenia" sie nazywa? zakladam zeby przy joinach sie nie pogubic ale mimo wszystko "AS" nie jest az tak skomplikowane do uzycia. Ten post edytował NEO.pl 23.03.2011, 10:48:36 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 23.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
zaloz locka na tabele, wybierz najwiekszy numer dla danego regionu; utworz nowy numer; zapisz do bazy; zdejmij locka I nadal jedna tabela wystarczy. Oczywiscie musisz usunac primary key z id_zlec z oczywistych powodow (ale unique moze juz byc na id_zlec + id_rejonu PS: zawsze mi sie podobaja "optymalizacje" typu "zlec" zamiast "zlecenie". Poza tym po co "_zlec" w ogole, skoro tabela "zlecenia" sie nazywa? zakladam zeby przy joinach sie nie pogubic ale mimo wszystko "AS" nie jest az tak skomplikowane do uzycia. Mógłbym prosić o rozwinięcie tematu "wybierz największy numer dla danego regionu" ? Załóżmy że w bazie Zlecenia nie ma jeszcze żadnych rekordów. Dodaję nowy rekord. Wybieram na formularzu np. Rejon II. Pole id_zlec przyjmuje wartość 1 Czy mam dodać kolejne pole na numer ? Już sobie poradziłem. Dodałem nowe pole nr_zlecenia i takie zapytanie Kod mysql_query("select MAX(nr_zlec) AS ile FROM zlecenia where id_rejon_zlec=$id_rejon_zlec")
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 5 Dołączył: 26.01.2011 Ostrzeżenie: (40%) ![]() ![]() |
Cytat Czy mam dodać kolejne pole na numer ? Tak, bo co innego to unikalny numer zestawu danych (czyli u Ciebie id_zlec) a co innego jakistam numer porzadkowy. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:36 |