![]() |
![]() ![]() |
![]() |
--anonymous-- |
![]()
Post
#1
|
Goście ![]() |
Witam,
posiadam taką mniej więcej bazę danych ![]() Nie wiem czy jest dobrze zaprojektowana (w razie czego proszę o uwagi). Chcę zrobić mechanizm dodawania filmu i tu pojawia się problem, bo potrafię to zrobić przesyłając oddzielnie do każdej tabeli, ale jak zrobić żeby na jednej stronie można było dodać zdjęcie do filmu, wybrać kategorię i uzupełnić dane o filmie (i wszystko zostało odpowiednio powiązane). Wiem, że są klucze, ale nie wiem w jaki sposób powiązać je podczas dodawania. Przewiduję, że wyświetlanie takich danych będzie już po odpowiednim dodaniu i powiązaniu rzeczą prostszą. Proszę o wskazówki. Nie chodzi mi tu o napisanie skryptu, tylko wskazówki dotyczące zapytań MySQL, jak one powinny się wiązać itp. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
1. Filmy zazwyczaj mają więcej niż jedną kategorię - dodaj tabele łączącą kategorie z filmem
2. To samo z filmem i zdjęciami |
|
|
--anonymous-- |
![]()
Post
#3
|
Goście ![]() |
![]() Teraz tak to wygląda (chociaż i tak nie rozumiem po co te tabele, skoro były odpowiednie klucze wiążace). Chcę stworzyć stronę gdzie dodaje się film. Jest to formularz, gdzie wypełnia się: - tytuł: - kategoria: (np. lista rozwijana) - zdjęcie: -- źródło: -- tytuł: Jak sformułować zapytania SQL, aby te dane się powiązały? Pozdrawiam |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
--anonymous-- |
![]()
Post
#5
|
Goście ![]() |
Dzięki, to mi dużo pomaga, lecz chodziło mi bardziej o dodanie tych danych na jednej stronie (a nie wyświetlenie). Mianowicie zastanawia mnie to że, numer pola w tabeli, który jest identyfikatorem - tworzony jest przez MySQL? - To czy da się dodać to wszystko na jednej stronie (może id da się ustawić na sztywno)? - czyli jak powinny wyglądać INSERTy?
|
|
|
--anonymous-- |
![]()
Post
#6
|
Goście ![]() |
Wymyśliłem, że można przy wcześniejszym rządaniu pobrać z bazy numer najwiekszego ID i go powiekszyć o 1. Ale co w sytuacji, jak ktoś w czasie w którym ja bede edytował - doda nowy film?
ps. Jestem anonimowy więc nie moge edytować - sorki za post pod postem |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 291 Pomógł: 45 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Rejestracja nie boli, a ułatwia życie.
Cytat pobrać z bazy numer najwiekszego ID i go powiekszyć o 1. Ale co w sytuacji, jak ktoś w czasie w którym ja bede edytował - doda nowy film? Tak się do tego nawet nie zabieraj - po to jest autoinkrementacja wartości pół żeby ją stosować. Ja twoja strukturę ograniczyłbym do: - tabela film - tabela kategoria filmu Dodatkowo doszłoby do tego: - tabelka powiązań film <-> kategoria, ale nie opierał jej na 2 tylko polach tylko dodał 3 z indeksem (autoinkrementowalnym) Co do tabelki film <-> zdjęcie - jak dla mnie zbędna. Bo owszem film może mieć wiele zdjęć, ale raczej zdjęcie jest dopasowane do konkretnego filmu. Czyli wystarczy pole klucza obcego w tabelce ze zdjęciami tak jak miałeś w pierwotnej formie. |
|
|
--anonymous-- |
![]()
Post
#8
|
Goście ![]() |
Ok, teraz wygląda to tak:
![]() Tylko nadal nie wiem w jaki sposób zrealizować mój główny cel. Cytat Chcę zrobić mechanizm dodawania filmu i tu pojawia się problem, bo potrafię to zrobić przesyłając oddzielnie do każdej tabeli, ale jak zrobić żeby na jednej stronie można było dodać zdjęcie do filmu, wybrać kategorię i uzupełnić dane o filmie (i wszystko zostało odpowiednio powiązane). Wiem, że są klucze, ale nie wiem w jaki sposób powiązać je podczas dodawania. Czyli to będą 4 INSERTy, ale skąd mam wiedzieć, jakie będzie ID? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 291 Pomógł: 45 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Najpierw musisz mieć wprowadzone kategorie.
Dodając film takim formularzem będziesz mógł dodać film (id kategorii np. dodasz do select'a) Zdjęcie będziesz mógł dodać niemal jednocześnie z filmem - najpierw doda się rekord filmu, pobierzesz mysql_last_id() i dodasz zdjęcie po uprzednim uploadzie na serwer. (hierarchia - krok po kroczku) Wszystko da się zrobić - zależnie od układu tabelek. -- A jak zrealizować? frontend: HTML + CSS + FORM backend: php + mysql Ten post edytował klocu 13.08.2012, 16:43:05 |
|
|
--anonymous-- |
![]()
Post
#10
|
Goście ![]() |
Będzie takie coś działało wysyłając zapytania w jednym żądaniu?
-- INSERT na film ---- wpisane title -- INSERT na film_has_category ---- pobranie film_idFilm z mysql_insert_id() (bo o tym mysql_last_id() nie ma nic w necie) ---- pobranie category_idCategory z formularza -- INSERT na photo ---- wpisane title, source ---- pobranie film_idFilm ze zmiennej (wczesniej juz pobrane) |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Zamiast pytać nas czy coś zadziała sprawdź
![]() |
|
|
--anonymous-- |
![]()
Post
#12
|
Goście ![]() |
Ale dlaczego mam nie pytać przed?
Nie mam żadnego doświadczenia w tworzeniu w PHP, więc najpierw chciałbym się dowiedzieć - jak zaprojektować bazę i jak to będzie wszystko wyglądało. Mam napisać 50 lini kodu, które potem jak się okaże, pójdą w niepamięć bo były bez sensu - to jest bez sensu. Jak ktoś programuje w PHP, to spojrzenie na takie coś Cytat -- INSERT na film ---- wpisane title -- INSERT na film_has_category ---- pobranie film_idFilm z mysql_insert_id() (bo o tym mysql_last_id() nie ma nic w necie) ---- pobranie category_idCategory z formularza -- INSERT na photo ---- wpisane title, source ---- pobranie film_idFilm ze zmiennej (wczesniej juz pobrane) i powiedzenie, czy to ma jakiś sens to chyba rzecz prosta (kilkadziesiąt sekund).. Dla mnie, który nie wiąże swojej przyszłości z PHP, napisanie tego i sprawdzenie czy działa to długiiii czas. ![]() Dziękuję za pomoc. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ale dlaczego mam nie pytać przed? Nie mam żadnego doświadczenia w tworzeniu w PHP, więc najpierw chciałbym się dowiedzieć - jak zaprojektować bazę i jak to będzie wszystko wyglądało. Mam napisać 50 lini kodu, które potem jak się okaże, pójdą w niepamięć bo były bez sensu - to jest bez sensu. Nie, to nie działa tak, że na forum powiedzą Ci "co i jak", a Ty tylko posklejasz kod. To działa w ten sposób, że na forum ludze mogą pomóc nakierować na właściwe tory (np. pomogą dobrać strukturę bazy, pomogą poprawić zapytanie), ale kod piszesz Ty - i zaręczam Ci, że na własnych błędach człowiek uczy się najlepiej. Nawet jeśli programowanie dla niego to tylko hobby czy zrobienie jednej konkretnej rzeczy. P.S. Też nie piszę w PHP dla pieniędzy, ale dla poszerzania horyzontów i ogólnie mówiąc, dla siebie. |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Google: CRUD i scaffold.
Szczerze mówiąc, takich rzeczy od zera się już za często nie robi... -------------------- ![]() 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! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 04:23 |