Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Problem z powiązaniem dwóch tabel
-Zako-
post
Post #1





Goście







Witam,
Chciał bym zaznaczyć ,że dopiero raczkuje w kwestii php dlatego proszę o wyrozumiałość(IMG:style_emoticons/default/wink.gif)
mam takie tabele :
  1. CREATE TABLE autorzy
  2. (
  3. IDautora int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4. Imie char(30),
  5. Nazwisko char(20),
  6. )

oraz
  1. CREATE TABLE ksiazki
  2. (
  3. IDksiazki int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4. IDautora int UNSIGNED NOT NULL,
  5. Rok date NOT NULL
  6. Miejsce char(30)
  7. )


Dane do bazy danych wprowadzane są za pomocą formularza (jednocześnie do tabeli książki oraz do tabeli autorzy przy użyciu dwóch zapytań) i tu właśnie pojawia się problem. Zapisując dane chciałbym aby IDautora (auto_increment) w tabeli autorzy, było również jednocześnie zapisywane do pola IDautora w tabeli książki aby utworzyło się powiązanie na podstawie którego mógłbym później wyszukiwać książki na podstawie autora który ją napisał.

P.S. Jeżeli logika całego "przedsięwzięcia" jest nieprawidłowa lub niejasno coś nakreśliłem proszę zwrócić mi uwagę
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pr0kt0r
post
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 1
Dołączył: 1.12.2006

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


A czego nie wiesz? Po prostu dodajesz dane do tych tabel(INSERT INTO) a później wyświetlasz(SELECT) łącząc tabele(JOIN) na te pola.
Go to the top of the page
+Quote Post
-Zako-
post
Post #3





Goście







Cytat(pr0kt0r @ 9.01.2012, 21:33:33 ) *
A czego nie wiesz? Po prostu dodajesz dane do tych tabel(INSERT INTO) a później wyświetlasz(SELECT) łącząc tabele(JOIN) na te pola.


Tak tak, wiem o tym i robię dokładnie tak jak radzisz. Problem w tym ,że dodając dane z poziomu formularza do bazy danych a konkretnie do tabeli książki nie mam w nim (formularzu) pola IDautora ,bo było bo to moim zdaniem bez sensu. Dlatego też akurat te pole w tabeli książki pozostaje puste ,gdy zapisuje dane (INSERT) w tej tabeli i tu właśnie pojawia się pytanie: jak "pobrać" pole IDautora z tabeli autorzy i wstawić jego zawartość również do IDautora w tabeli ksiazki?

Podam również przykład żeby troszkę rozjaśnić sytuację:
To "roboczy" formularz z którego dane wprowadzane są do bazy :

  1. Dodaj ksiazke <br><br>
  2. Tytul:
  3. <input name="tytul" type="text" size="40"><br>
  4. Rok:
  5. <input name="rok" type="text" size="40"><br>
  6. Miejsce:
  7. <input name="miejsce" type="text" size="40"><br>
  8. ISBN:
  9. <input name="ISBN" type="text" size="40"><br>
  10. Imie autora:
  11. <input name="imieautora" type="text" size="40"><br>
  12. Nazwisko autora:
  13. <input name="nazwiskoautora" type="text" size="40"><br>
  14. Wydawca:
  15. <input name="wydawca" type="text" size="40">
  16. <input type="submit" name="submit" value ="dodaj">
  17.  


I teraz dane dotyczące książki zostaną zapisane w tabeli o takiej samej nazwie np pod IDksiążki = 4 (auto_increment) ,podobnie dane dotyczące autora tutaj np. IDautora = 5 (auto_increment). Chcąc teraz wyszukiwać dane książki na podstawie autora, IDautora (klucz obcy) w tabeli książki powinno mieć taką samą wartość jak IDautora(klucz główny) w tabeli autorzy czyli 5 (a po zapisaniu danych ma wartość 0 co zresztą jest logiczne bo nigdzie nie podaje jego wartości) Jak więc sprawić by przy zapisie danych ,IDautora (książki) automatycznie przyjmowało wartość z IDautorzy(autorzy)?

Teraz to dopiero pewnie zamotałem;)

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: 3.10.2025 - 16:21