Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] hmmm relaca jeden do wielu ?
Forum PHP.pl > Forum > Przedszkole
fredman
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:)
_olo_1984
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
fredman
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
_olo_1984
nie wyswietlaj pola `kategoria` tylko `nazwa_kategorii`
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.