Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] hmmm relaca jeden do wielu ?
fredman
post 3.04.2009, 00:47:48
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

Ostrzeżenie: (0%)
-----


Jestem bardzo zielony z mysql'a, nie za bardzo wiem jak robi się relacje i jak się je obsługuje z PHP(?)... zawsze jakoś sobie radziłem bez relacji ale teraz by mi się przydało jednak z tego skorzystać ;]

Mam dwie tabelki. w jednej mam 'kategorie' ( id_kategorii, nazwa_kategorii ) a w drugiej 'rzeczy', które są przydzielane do kategorii z tabelki 'kategorie' (id_rzeczy, kategoria, nazwa_rzeczy)

i teraz chciałbym, żeby kategorie w tabeli 'rzeczy' nie były wpisywane na sztywno tylko pobierane z tabeli 'kategorie' ... hmm nie wiem czy to dobrze piszę , opowiem jak to robie w PHP:

jak dodaję rzecz przez wypełnianie formularza to jest między innymi pole SELECT, w którym są nazwy kategorii. Teraz mam tak ze po wysłaniu takiego formularza do tabeli 'rzeczy' dodaje się rekord z "na sztywno" wpisaną nazwą kategorii. W takim przypadku jeśli zmienię nazwę kategorii to w rzeczach dodanych przed tą zmianą nazwa będzie oczywiście stara a chciałbym żeby się to dynamicznie zmieniało. jak rozumiem załatwi to ta "relacja" tyle że właśnie nie wiem jak to zrobić żeby hulało:)

Ten post edytował fredman 3.04.2009, 00:48:58
Go to the top of the page
+Quote Post
_olo_1984
post 3.04.2009, 06:20:43
Post #2





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

Ostrzeżenie: (0%)
-----


bardzo proste rozwiązanie, jeżeli masz ten select do kategorii to zrób takie coś
  1. <option value="id_kategorii">nazwa_kategorii</option>


po tej czynności będziesz w tabeli rzecz miał zamiast nazwy kategorii jej id.
Teraz, jezeli chcesz wyświetlić wszystkie rzeczy, normalne, że w polu kategoria będziesz miał cyfrę zamiast nazwy. Rozwiązujesz to przy pomocy odpowiedniego zapytania, łaczącego tabele np.
  1. SELECT r.*, k.nazwa_kategorii
  2. FROM rzeczy AS r
  3. LEFT JOIN kategorie AS k ON(k.id_kategorii=r.kategoria)


po pobraniu masz pole o nazwie "nazwa_kategorii" które prechowuje jej nazwę. I teraz jeżeli zmieniasz nazwę kategori w tableli kategorie to nie musisz aktualizować pól w tabeli rzeczy. Przeanalizuj to co podałem, poczytaj o JOIN'ach. To tak na początek. Pozdr


--------------------
awake
Go to the top of the page
+Quote Post
fredman
post 3.04.2009, 13:27:22
Post #3





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 15.12.2006

Ostrzeżenie: (0%)
-----


OK, zrobiłem tak , że w tabeli 'rzeczy' do pola 'kategora' podstawia mi się cyferka (odpowiednie id) no ale teraz chciałbym mieć nazwę zamiast cyfry (ID) przy listowaniu tabeli 'rzeczy'. Podstawiłem to zapytanie jak napisałeś ale pokazuje się właśnie cyfra a nie ta nazwa odpowiednia

Ten post edytował fredman 3.04.2009, 13:29:54
Go to the top of the page
+Quote Post
_olo_1984
post 4.04.2009, 07:16:40
Post #4





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

Ostrzeżenie: (0%)
-----


nie wyswietlaj pola `kategoria` tylko `nazwa_kategorii`


--------------------
awake
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 15:35