我正在參加一些在線課程,並在其中一項練習中爲博客創建兩個表格 - 博客文章和博客文章 - 並通過外鍵連接它們,然後顯示所有內容來自兩者的內容。評論應該僅與特定文章相關聯,同時也允許多個評論。在PHP中顯示和鏈接外鍵內容
我嘗試:
function list_articles() {
include('core/db/db_connection.php');
$sql = "SELECT blog.title, blog.content, blog.posted_by, blog.date, article_comments.comments, article_comments.comment_by
FROM blog LEFT OUTER JOIN article_comments
ON blog.content_id = article_comments.content_id
WHERE blog.content != ''
ORDER BY blog.content_id DESC";
$result = mysqli_query($dbCon, $sql);
while ($row = mysqli_fetch_array($result)) {
echo
"<h5 class='posted_by'>Posted by " . $posted_by = $row['posted_by'] . " on " . $row['date'] . "</h5>" .
"<h1 class='content_headers'>" . $title = $row['title'] . "</h1>" .
"<article>" . $content = $row['content'] . "</article>" .
"<div class='commented_by'>Posted by: " . $row['comment_by'] . "</div>" .
"<div class='comments'>Comments: " . $row['comments'] . "</div>";
}
}
這就是我如何在數據庫中插入註釋:
function insert_comments($comment_by, $comments) {
include('core/db/db_connection.php');
$sql = "SELECT blog.content_id, article_comments.blog_id
FROM blog AS blog
INNER JOIN article_comments AS article_comments ON article_comments.blog_id > blog.content_id";
mysqli_query($dbCon, $sql);
}
在phpMyAdmin外鍵的作品好嗎和評論鏈接到一個特定的文章。我想在網頁上轉置它。當我在頁面上插入新文章時,它可以正常工作,但當我嘗試插入該文章的評論時,它將不會顯示它。
如果我將ON blog.content_id = article_comments.content_id
更改爲ON blog.content_id = article_comments.blog_id
(blog_id是外鍵的字段名稱) - 它將顯示文章的所有評論 - 但它會爲與其關聯的每個評論重複該文章。這有任何意義嗎?我試着盡我所能解釋它..如果您需要進一步澄清,請讓我知道。由於
順便說一句,這是我用來創建外鍵的語句:
ALTER TABLE article_comments ADD CONSTRAINT comment_blog_fk FOREIGN KEY (blog_id) REFERENCES wt.blog(content_id) ON DELETE NO ACTION ON UPDATE CASCADE;
編輯:結果我用ON blog.content_id = article_comments.blog_id
Article title: LOREM IPSUM
Content: LOREM IPSUM DOLOR SIT AMET....
--------------------------------------
Name: DSK
Comment: Great article!
-- HERE IT DUPLICATES THE ARTICLE TO INSERT A NEW COMMENT --
Article title: LOREM IPSUM
Content: LOREM IPSUM DOLOR SIT AMET....
--------------------------------------
Name: DSK
Comment: Great article! - 2nd comment
,你可以得到看到它會複製插入的每條評論的文章。所以我最終得到兩個重複的文章,持有不同的評論。如果如果我有100篇評論,文章都會複製100次
行爲我期待:
Article title: LOREM IPSUM
Content: LOREM IPSUM DOLOR SIT AMET....
-------------------------------------- \\ COMMENTS \\
Name: DSK
Comment: Great article!
--------------------------------------
Name: DSK
Comment: Great article! - 2nd comment
我在你的問題只看到** SELECT **,但沒有人** INSERT **。所以當你插入數據時,或者當你選擇時有問題? –
@DanilaGanchar現在,我直接通過數據庫接口插入數據,直到我弄清楚如何正確顯示它,因此我的代碼中沒有INSERT語句。所以,我的問題在於展示它。在數據庫中,評論與文章正確關聯。我在頁面上顯示它們的方式似乎是問題所在。我選擇評論或文章的方式很可能存在問題。 – Dominique
你可以打印你的結果從數據庫和你的期望? –