![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Iława Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam w bazie danych tabele z trzema kolumnami np. id | kolumna1 | kolumna2 powiedzmy ze dodalem 50 rekordow do tabeli za pomoca formularza, w polu id - numer wzrasta o 1 wraz z dodaniem kolejnych rekordow, ale dalej jest problem: gdy usune jeden z rekordow jego id przepada "na zawsze". Gdy usune rekord o id 20 to jego ide juz nie moge odzysjac. Chcialbym aby po usunieciu ktoregos z rekordow id pozostalych automatycznie sie "przesowalo, tak by zawsze bylo po kolei. Gdy usune ostatni dodany rekord (o najwyzszym id) to po dodaniu kolejnego rekordu nie zwieksza sie id o 1, a o tyle ile bylo usunietuch rekordow. Zalezy mi na tym zeby id bylo zawsze uszeregowane rosnaco. Bede wdzieczny za wytlumaczenie mi bledow ktore robie. Nie wiem czy mam podawac jakies zrodla kodow, jesli tak to powiedzcie mi o tym. Dzieki! -------------------- Jeziorak-Iława.pl
www.jeziorak-ilawa.pl krystian@jeziorak-ilawa.pl |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
autoincrement dziala tak, że zawsze dodaje o jeden więcej niż ostatnio bylo. Nawet jakby ci się udalo po usunięciu rekordu inne id zmniejszyc, to i tak następny dodany będzie miał o jeden większy od ostatnio dodanego czyli już nie pokolei. Nie ma więc sensu tutaj robić autoincrement, tylko sam musisz nadawać nowym rekordom id.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Iława Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie mam w polu id ustawione "auto_increment", a jesli go usune to bedzie id dodawalo sie po kolei?
-------------------- Jeziorak-Iława.pl
www.jeziorak-ilawa.pl krystian@jeziorak-ilawa.pl |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
jesli go usuniesz to sam bedziesz musial nadawac id. Ale i tak to musisz zrobić skoro chcesz mieć spelnione swoje zalożenia (autoincrement tu nie ma sensu)
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Cytat(kpjeziorak @ 2005-05-25 14:00:24) Chcialbym aby po usunieciu ktoregos z rekordow id pozostalych automatycznie sie "przesowalo, tak by zawsze bylo po kolei. Gdy usune ostatni dodany rekord (o najwyzszym id) to po dodaniu kolejnego rekordu nie zwieksza sie id o 1, a o tyle ile bylo usunietuch rekordow. Zalezy mi na tym zeby id bylo zawsze uszeregowane rosnaco. Po co Ci to? Co chcesz w ten sposob osiagnac? Bo pola ID sa w znacznej wiekszosci przypadkow "tylko" kluczami podstawowymi, a ich idea polega na jednoznacznym okresleniu rekordu przez ten numer. To ze usuniesz numer ze srodka wcale nie narusza tego warunku.. nadal kazdy numer ID jednoznacznie okresla rekord, a ID i tak sa uszeregowane rosnaco (mimo ewentualnych "dziur"), wiec napisz moze do czego dazysz, bo wydaje mi sie ze chcesz cos niepotrzebnie przekombinowac z tym ID. -------------------- Brak czasu :/
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Iława Ostrzeżenie: (0%) ![]() ![]() |
FiDO, juz Ci tlumacze o co mi chodzi:
Mam dwie tabele na serwerze:
oraz
Mam rowniez formularze, dzieki ktorym wprowadzam dane do obu tabel. Gdy prowadzam mecz "identyfikuje" go z odpowiednim sezonem za pomoca wpisywania tych samych danych w 'id' z pierwszej tabeli i 'id_sezonu' z drugiej tabeli. Bedzie mi to potrzebne, gdyz bede chcial wyswietlac mecze z kazdego sezonu ODDZIELNIE a nie wszystkie mecze na raz. W ten sposob chce stworzyc jakby "relacje" miedzy tymi tabelami. Z gory prosze nie smiej sie ze mnie, ja jestem zielony jesli chodzi o php i mysql, ale chce sie nauczyc, a ponoc najlepiej uczy sie na wlasnych bledach ![]() Moze znasz lepszy pomysl by osiagnac to co chce? -------------------- Jeziorak-Iława.pl
www.jeziorak-ilawa.pl krystian@jeziorak-ilawa.pl |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Cytat Gdy prowadzam mecz "identyfikuje" go z odpowiednim sezonem za pomoca wpisywania tych samych danych w 'id' z pierwszej tabeli i 'id_sezonu' z drugiej tabeli. Bedzie mi to potrzebne, gdyz bede chcial wyswietlac mecze z kazdego sezonu ODDZIELNIE a nie wszystkie mecze na raz. W ten sposob chce stworzyc jakby "relacje" miedzy tymi tabelami. No i dobrze.. tak sie wlasnie tworzy relacje. Ale przeciez nie potrzebujesz do tego, zeby ciag ID sezonow byl bez "dziur" w srodku. To w zadnym wypadku nie przeszkadza. A jesli chcialbys zachowac ciag bez dziur to byloby to raczej ciezkie, z tego wzgledu, ze jak usunalbys jakis sezon ze srodka, to musialbys wszystkie z wiekszym ID "cofnac" o 1. Wiazaloby sie to z koniecznoscia cofniecia ID kazdemu meczowi (z sezonu o wyzszym ID niz ten wlasnie usuniety), jednym slowem.. duzo roboty.. niepotrzebnej roboty. Nic nie stoi na przeszkodzie, abys mial dziurawe jak ser szwajcarski numerki ID ;] Tak wiec nie rozumiem z czym masz problem... Cytat Z gory prosze nie smiej sie ze mnie, ja jestem zielony jesli chodzi o php i mysql, ale chce sie nauczyc, a ponoc najlepiej uczy sie na wlasnych bledach ![]() Nie bylo w tym pytaniu nic smiesznego, wiec sie nie martw ![]() -------------------- Brak czasu :/
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Iława Ostrzeżenie: (0%) ![]() ![]() |
Ehh ja jak zwykle mam problemy... nie chcialem zakladac nowego tematu, wiec napisze w tym. Mam dwa pliki, oto ich kody zrodlowe:
dodaj_mecz.php
zapisz_mecz.php
I teraz nie moge dodac meczu do bazy, chociaz nie dostaje komunikatu o bledzie. Wyzej sa tabele do ktorych chce dodawac dane. Bede wdzieczny za podpowiedz co jest zle. A moze macie jakis lepszy pomysl na formularz, moze mozna to zrobic lepiej (na 100% mozna, bo jestem amatorem ![]() -------------------- Jeziorak-Iława.pl
www.jeziorak-ilawa.pl krystian@jeziorak-ilawa.pl |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 256 Pomógł: 0 Dołączył: 19.07.2006 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
albo mi sie wydaje albo ta instrukcja warunkowa jest zle skonstrułowana.
Po pierwsze mysql_query() potrzbujesz jak juz ![]() a instrukcje napisz najlepiej tak
wtedy poznasz ew, błedy a zapytyanie napewno zostanie wyonane zapytanie niech bedzie tak zapisane w zmiennej
lub ew, tak:
ps. bez tego / który daje mi sie pomiedzy ' " na koncu zapytania ![]() Ten post edytował dawhol 28.07.2006, 10:51:57 -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@dawhol czy myslisz, ze po roku od ostatniego posta, autorowi problemu bedą jeszcze potrzebne te informacje? (pytanie retoryczne)
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 256 Pomógł: 0 Dołączył: 19.07.2006 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
heheh nie zwróciłem uwagi
![]() -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.06.2025 - 08:32 |