![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Projektuje właśnie bazę na stronę. I natrafiłem na problem. Ale od początku. Posiadam dwie tabele: POSTS z kolumnami | id(primary key) | title | post | oraz IMAGES - | id(primary key) | url | Każdy post może posiadać więcej niż 1 zdjęcie. I tu mój problem. Na początku myślałem aby do tabeli POSTS dodać kolumnę np. imagesid gdzie zapisywałbym (np. w formie 1:12:245) id zdjęć. Jednak po przemyśleniu doszedłem do wniosku, że aby wyświetlić interesujące mnie dane (wszystkie z kolumny z POSTS + wszystkie odpowiednie rekordy zdjęć) musiałbym robić jedno odwołanie, analizować pobrane dane i robić kolejne odwołanie. Co mi się nie podoba. Zacząłem szukać i wpadłem na OBCY KLUCZ - Foreign Key, ale nie wiem jak go do końca zastosować. Czy ktoś mógłby pomóc? Chodzi mi o utworzenie ala 'relacji' 1 do wielu między 2 tabelami, oraz w jaki sposób następnie pobrać te dane podczas jednego połączenia do bazy. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Post ma wiele obrazkow, to do obrazka wstawiasz post_id ktore bedzie wskazywac na post do ktorego ten obrazek nalezy.
A pobieranie? SELECT * FROM images WHERE post_id = $postID -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak, oczywiście, ale takim sposobem dalej muszę wykonać dwa zapytania do bazy danych. Jedno do tabeli posts, drugie do tabeli images. (np. gdy nie znany jest id postu, np kiedy chciałbym wyświetlić posty z danego roku. Wtedy muszę pobrać najpierw posty i dopiero znając ich id mogę pobierać zdjęcia). Jestem pewny, że jest lepsze rozwiązanie, a pisząc tą stronę chciałem właśnie się czegoś nauczyć.
Znalazłem coś takiego, ale nie wiem do końca jak to zastosować i jak w ten sposób utworzonych tabeli później korzystać. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Jak to dwa...? A JOIN?
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Tak, oczywiście, ale takim sposobem dalej muszę wykonać dwa zapytania do bazy danych. Jedno do tabeli posts, drugie do tabeli images. (np. gdy nie znany jest id postu, np kiedy chciałbym wyświetlić posty z danego roku. Wtedy muszę pobrać najpierw posty i dopiero znając ich id mogę pobierać zdjęcia). Jestem pewny, że jest lepsze rozwiązanie, a pisząc tą stronę chciałem właśnie się czegoś nauczyć. Mozesz sobie pobrac wszystkie posty zjoinowane z wszystkimi ich zdjeciami, jednym zapytaniem, ale dla kazdego zdjecia masz caly rekord postu po raz kolejny. Mozesz tez pobrac najpierw wszystkie posty, a drugim zapytankiem wszystkie obrazki (join do postow i sprawdzanie daty postu). -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 11:44 |