PHP从包含3个联接的2个表输出数据
希望你能帮忙 我有3个表PHP从包含3个联接的2个表输出数据,php,mysql,join,output,relational,Php,Mysql,Join,Output,Relational,希望你能帮忙 我有3个表文章文章\u关键字\u链接关键字 他们结合在一起,我想实现一篇文章显示在页面上,但显示所有相关的关键字,这是链接到文章 我还没有格式化这个页面,我只是想让功能正常工作 SELECT article.article_id, article.article_title, article.article_content, keywords.keyword_name FROM article JOIN article_keyword_link ON article.article
文章
文章\u关键字\u链接
关键字 他们结合在一起,我想实现一篇文章显示在页面上,但显示所有相关的关键字,这是链接到文章
我还没有格式化这个页面,我只是想让功能正常工作
SELECT article.article_id, article.article_title, article.article_content, keywords.keyword_name
FROM article
JOIN article_keyword_link ON article.article_id = article_keyword_link.article_id
INNER JOIN keywords ON article_keyword_link.keyword_id = keywords.keyword_id
在Phpmyadmin中运行上述查询,我收到了这些结果
Query Output from PhpmyAdmin
+------------+---------------+-------------------+--------------+
| article_id | article_title | article_content | keyword_name |
+------------+---------------+-------------------+--------------+
| 1 | Article 1 | Article 1 content | CCU |
| 1 | Article 1 | Article 1 content | WIFI |
| 1 | Article 1 | Article 1 content | Network |
| 2 | Article 2 | Article 2 content | Passenger |
| 2 | Article 2 | Article 2 content | Application |
+------------+---------------+-------------------+--------------+
下面是表格的填充方式
Table: article
+------------+---------------+-------------------+
| article_id | article_title | article_content |
+------------+---------------+-------------------+
| 1 | Article 1 | Article 1 content |
| 2 | Article 2 | Article 2 content |
+------------+---------------+-------------------+
页面来源:
<?php
include 'includes/db.php';
// Create connection
$conn = new mysqli($host, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "
SELECT article.article_id, article.article_title, article.article_content, keywords.keyword_name
FROM article
JOIN article_keyword_link ON article.article_id = article_keyword_link.article_id
INNER JOIN keywords ON article_keyword_link.keyword_id = keywords.keyword_id
";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "Article ID: " . $row["article_id"] . "<br>";
echo "Article Title: " . $row["article_title"] . "<br>";
echo "Article Content: " . $row["article_content"] . "<br>"
;
}
} else {
echo "0 results";
}
$conn->close();
?>
所以我面临两个问题。1.如何在显示与该文章相关的所有关键字的同时,检索一篇文章以显示在页面上
2.如何调整源代码以显示关键字?如果我在循环中为关键字_name添加一个新的echo,页面将不会加载
如果您对此有任何帮助,我们将不胜感激您就快到了,试试这个
选择article.article\u id、article.article\u title、article.article\u content、group\u concat(关键字.关键字\u name)作为关键字
从文章
在article.article\u id=article\u关键字\u link.article\u id上加入article\u关键字\u链接
文章上的内部连接关键字\u关键字\u链接。关键字\u id=关键字。关键字\u id
按文章分组。文章\u id
有关用于实现此目的的函数的信息。请看
此外,如果您只想要一篇文章,请在查询末尾添加
limit 1
。如果你想要最新的/最旧的,你可以为最新的添加按文章排序\u id DESC LIMIT 1
,为最旧的添加按文章排序\u id ASC LIMIT 1
,这样我可以看到当我在phpmyadmin中运行这个时,它会显示独特的文章和它;当我把它放在源代码中并回显输出“关键字”时,它仍然在做同样的事情,但它没有加载页面。当我把它粘贴到源代码中时,这是一个错误。非常感谢!
Table: keywords
+------------+--------------+
| keyword_id | keyword_name |
+------------+--------------+
| 1 | CCU |
| 2 | WIFI |
| 3 | Passenger |
| 4 | Application |
| 5 | Software |
| 6 | Hardware |
| 7 | Network |
+------------+--------------+
<?php
include 'includes/db.php';
// Create connection
$conn = new mysqli($host, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "
SELECT article.article_id, article.article_title, article.article_content, keywords.keyword_name
FROM article
JOIN article_keyword_link ON article.article_id = article_keyword_link.article_id
INNER JOIN keywords ON article_keyword_link.keyword_id = keywords.keyword_id
";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "Article ID: " . $row["article_id"] . "<br>";
echo "Article Title: " . $row["article_title"] . "<br>";
echo "Article Content: " . $row["article_content"] . "<br>"
;
}
} else {
echo "0 results";
}
$conn->close();
?>
Article ID: 1
Article Title: Article 1
Article Content: Article 1 content
Article ID: 1
Article Title: Article 1
Article Content: Article 1 content
Article ID: 1
Article Title: Article 1
Article Content: Article 1 content
Article ID: 2
Article Title: Article 2
Article Content: Article 2 content
Article ID: 2
Article Title: Article 2
Article Content: Article 2 content