Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MySQL] Problem ze zgraniem danych
PawelBah
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 1.02.2010

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


Witam,

Opis problemu:

Schemat bazy na potrzeby rozwiązania problemu:

Tabela: filmy:
- film_id
- tytul
- ...

Tabel: aktorzy:
- aktor_id
- nazwisko

Tabela: rezyserowie:
- rezyser_id
- nazwisko

Tabela: film:
- film_id
- aktor_id
- rezyser_id

Krok 1:
Pojawia się formularz w którym wybieramy ilu aktorów i ilu reżyserów chcemy dodać ->

Krok 2:
Po wysłaniu formularza pierwszego strona się odświeża i zostaje wygenerowany formularz z:

- tytułem
- gatunkiem
...
+
- polami aktor w liczbie odpowiadającej tej z kroku pierwszego.
- polami reżyser w liczbie odpowiadającej tej z kroku pierwszego.

Problem pojawia się podczas dodawania filmu do bazy danych, mianowicie:

- najpierw dodajemy dane do tabeli filmy - prosty INSERT z danymi z formularza.
- później dodajemy dane do tabeli aktorzy - nieco trudniejsze rozwiązanie, gdyż nie wiemy(na sztywno) ilu ich jest, ale z pomocą przychodzą nam pętle. Identycznie postępujemy z tabela rezyserowie.

Pytanie: jak dodać dane do tabeli film?

1. Zapytaniem:
  1. SELECT film_id FROM filmy ORDER BY film_id DESC LIMIT
1 - pobierzemy film_id ostatnio dodanego filmu?

Jak pobrać ostatnio dodanych aktorów i reżyserów? I wstawić ich do tabeli film razem z odpowiadającą im wartością film_id?

-----------------------
Pytania na później:

- Jak rozwiązać sytuacje gdy aktor/reżyser o podanym nazwisku jest już w bazie?
- Odnoszę wrażenie jakbym robił to jakoś naokoło, może istnieje jakiś prostszy sposób dodania filmu do bazy przy założeniach:

- aktorzy w bazie nie mogą się powtarzać.
- reżyserowie nie mogą się powtarzać.
- tabela filmy nie może zawierać 50 pól aktor/reżyser z czego 40 na wszelki wypadek (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
yoltz
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 28.02.2008

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


nie do konca kumam ale łatwiej bedzie zapisac dane do tabeli i z pętli wyciągnąć po nazwisku id masz pewnosc ze w miedzy czasie nikt ci nie doda jakiegos rekordu,

poz tym zamiast
  1. SELECT film_id FROM filmy ORDER BY film_id DESC LIMIT
  2. SELECT max(film_id) as id FROM filmy
jezeli chodzi o sprawdzanie czy rekord jest w bazie to gdzie widzisz problem?

select id from aktorzy where nazwisko="$_GET['nazwisko']"
if($r->id)
echo 'takie nazwisko juz jest w bazie';
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 04:36