![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam czysto teoretyczne pytanie.
Mam dwie tabele które opisuje poniżej: Pierwsza tabela składającą się z dwóch kolumn: id i kategoria. Id jest nadawane przez auto_increment natomiast w kolumnie o nazwie kategoria mieszczą się nazwy kategorii i jest ich dokładnie pięć. Tabela ta wygląda tak: 1. pierwszy kategoria 2. druga kategoria 3. trzecia kategoria 4. czwarta kategoria 5. piąta kategoria Druga tabela zawiera: id, kategoria, nazwa. Id jest nadawane przez auto_increment, kategoria to cyfra która ma nawiązywać do pierwszej tabeli i kolumna nazwa posiada nazwy produktów i przykładowo wygląda tak: 1. 3. nazwa_produktu Oznacza to, że pierwszy rekord o identyfikatorze nr. 1 to produkt o nazwie: nazwa_produktu i należy do kategorii 3 Problem w tym, że 'id' w pierwszej tabeli jest przez auto_increment dlatego też jak usunę wszystkie rekordy w pierwszej tabeli i utworze je na nowo? wtedy nie będzie żadnej kategorii o identyfikatorze 3 bo wtedy tabela pierwsza będzie wyglądała tak: 6. pierwszy kategoria 7. druga kategoria 8. trzecia kategoria 9. czwarta kategoria 10. piąta kategoria Pojawia się problem bo nagle wszystkie rekordy z drugiej tabeli stracą kategorie. I jak to pogodzić? Bo ja widzę tylko jedną opcję. Oprócz kolumny 'id' w pierwszej tabeli która ma auto_increment wstawić jeszcze jedną kolumnę o nazwie np. "numer_kategorii" i na sztywno wpisywać oprócz nazwy kategorii jej numer ale czy to jest dobre rozwiązanie? Ten post edytował Zagiewa 8.04.2010, 19:47:51 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 12.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie działa - chyba (IMG:style_emoticons/default/tongue.gif) tzn stworzyłem na nowo dwie tabele z takimi samymi wartościami ale teraz są one innoDB i mają ustawiony klucz obcy (tzn ta druga tabela ma ustawiony klucz obcy), a przynajmniej tak mi się wydaje. Póki co zapisałem do nich rekordy za pomocą formularzy w php. Teraz tylko muszę stworzyć skrypt co je odczyta i tutaj wyjdzie czy klucz obcy jest dobrze nadany. W razie czego będę pisał.
A właśnie przy okazji skorzystałem również z podpowiedzi piotrooo89 i zmieniłem nazwę kolumny 'kategoria' w drugiej tabeli na 'id_kategoria' (IMG:style_emoticons/default/smile.gif) Odświeżam temat bo jestem w trakcie pisania skryptu który odczytał by rekordy z połączenia moich dwóch tabel. Jak wyglądają tabele już wiecie. Poniżej przedstawiam kod, który dzięki waszej pomocy wyświetla kategorie:
Kod ten poprawnie wyświetla kategorie ale z jednej tabeli co nie jest problemem. Teraz potrzebuję odczytać rekordy z linkami z drugiej tabeli tak aby połączyć kolumnę 'id_kategoria' tabeli 2 z kolumną 'id' tabeli 1, a następnie wyświetlić linki z drugiej tabli tak aby każdy z nich znalazł się pod nazwą swojej kategorii ale to później. Na razie potrzebuje utworzyć połączenie które łączy dwie tabele i skleciłem coś takiego:
Problem w tym, że gdy ten kod wpiszę do powyższego skryptu i uruchomię stronę to znikają nazwy kategorii które wcześniej się wyświetlały. I teraz pytanie źle utworzyłem bazy (klucz obcy który pierwszy raz tworzyłem przez phpmyadmin) czy też próba połączenie tabel powoduje to zniknięcie? Ten post edytował piotrooo89 10.04.2010, 14:02:41
Powód edycji: [piotrooo89]: poprawiłem bbcode.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 04:50 |