![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 7.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
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? Ten post edytował NightKn8 8.11.2012, 08:28:31 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 7 Dołączył: 10.03.2011 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() Ten post edytował jaro87 8.11.2012, 11:41:05 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:18 |