Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z relacjami między tabelami w SQL
Forum PHP.pl > Forum > Bazy danych > MySQL
NightKn8
Jest to mój pierwszy post na tym forum także SERDECZNIE WITAM WSZYSTKICH! =)
Teraz do rzeczy:
Projektuje bloga opartego na php i sql i będąc na jego ukończeniu napotkałem na pewien problem prawdopodobnie związany z nieznajomością tych języków. Problem tkwi w komentarzach do danego wpisu. Choć dodają się one sukcesywnie to widać je wszystkie na każdym wpisie w blogu. Przykładowo komentarz dodany na wpisie 2 będzie widoczny na wpisie 1 i odwrotnie.

Otóż mam 3 tabele:
($ jest kluczem głównym)

entries_table
$post_id
post_title
post_body
post_user
post_date
post_time
edit_date
edit_time
edit_no

comments_table
$comment_id
post_id
comment_body
comment_user
comment_date
comment_time
comment_no

users_table
$user_id
username
password


I mam takie (być może błędne) rozumowanie, aby klucz główny z tabeli "entries_table" podłączyć pod "comments_table" . `post_id` jednocześnie nadając `post_id` w tabeli "comments_table" charakter klucza obcego dzięki czemu podczas dodania nowego wpisu `post_id`"UPDATNEŁO" by się zgodnie z `post_id`z tabeli "entries_table". Wtedy mógłbym porównać oba post_id i wyciągnąć konkretne komentarze dla danego wpisu. Problem tkwi w tym, że po dodaniu nowego wpisu (postu na blogu) w bazie danych nie ma utworzonego ani jednego rekordu komentarza więc w tabeli komentarzy nie ma co się "UPDATOWAĆ". Dodatkowo przy próbie połączenia obu `post_id`SQL wywala błąd: #1452 - Cannot add or update a child row: a foreign key constraint fails. (`blog`.`#sql-d8c_32`, CONSTRAINT `#sql-d8c_32_ibfk_1` FOREIGN KEY (`post_id`) REFERENCES `comments` (`post_id`) ON DELETE CASCADE ON UPDATE CASCADE)

Czy ktoś mógłby powiedzieć co jest źle? Czy dodatkowo mam dać pliki php albo fragmenty plików odpowiedzialne za wywołanie rekordów z bazy danych?
jaro87
Prawdopodobnie próbujesz dodać komentarz a podajesz mu nieprawidłowy post_id.

Poczytaj o relacjach jeden do wielu albo też możesz poszukać, jest takie fajne forum o php na którym ludzie setki razy mieli taki sam problem: forum smile.gif
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.