PHP/MySQL多表选择
我试图从一个表中选择多行,这取决于另一个表中给定的ID 我已经用下面的代码完成了一半的工作,但是根据分配给它的不同标记的数量,它会在每个博客上重复多次,我该如何操作才能在博客文章的一个副本上显示多个标记PHP/MySQL多表选择,php,mysql,multiple-tables,Php,Mysql,Multiple Tables,我试图从一个表中选择多行,这取决于另一个表中给定的ID 我已经用下面的代码完成了一半的工作,但是根据分配给它的不同标记的数量,它会在每个博客上重复多次,我该如何操作才能在博客文章的一个副本上显示多个标记 $sqlCommand = "SELECT blogid, blogtitle, content, blogtime, category, blogseourl, author FROM blog ORDER BY blogtime DESC"; $query = mysqli_quer
$sqlCommand = "SELECT blogid, blogtitle, content, blogtime, category, blogseourl, author FROM blog ORDER BY blogtime DESC";
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error());
$blogDisplay = '';
while ($row = mysqli_fetch_array($query)) {
$blogid = $row["blogid"];
$blogtitle = $row["blogtitle"];
$content = $row["content"];
$blogtime = $row["blogtime"];
$category = $row["category"];
$blogseourl = $row["blogseourl"];
$author = $row["author"];
$contentshort = substr($content, 0, 250);
$sqlCommand2 = "SELECT tag FROM blogtags WHERE blogid='$blogid'";
$query2 = mysqli_query($myConnection, $sqlCommand2) or die (mysqli_error());
while ($row = mysqli_fetch_array($query2)) {
$tag = $row['tag'];
$blogDisplay .= '<h1><a href="/blog/'. $blogseourl .'"> ' . $blogtitle . ' </a></h1> ' . $contentshort . '... <a href="/blog/'. $blogseourl .'">Read More...</a><br /><br /> ' . $author . ' posted on ' . $blogtime . ' | Category: ' . $category . ' | Tags: ' . $tag . ' | <a href="/blog/'. $blogseourl .'#disqus_thread"></a>';
}
}
mysqli_free_result($query);
因此,除了为每个标记回显多个$blogDisplay之外,所有功能都正常工作
有人有什么想法吗 您必须将blogDisplay分为两个部分,并列出中间的选项卡。 或者您必须缓冲标记列表并将其作为参数插入$blogDisplay 第一个是最简单的:
$sqlCommand = "SELECT blogid, blogtitle, content, blogtime, category, blogseourl, author FROM blog ORDER BY blogtime DESC";
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error());
$blogDisplay = '';
while ($row = mysqli_fetch_array($query)) {
$blogid = $row["blogid"];
$blogtitle = $row["blogtitle"];
$content = $row["content"];
$blogtime = $row["blogtime"];
$category = $row["category"];
$blogseourl = $row["blogseourl"];
$author = $row["author"];
$contentshort = substr($content, 0, 250);
$sqlCommand2 = "SELECT tag FROM blogtags WHERE blogid='$blogid'";
$query2 = mysqli_query($myConnection, $sqlCommand2) or die (mysqli_error());
/*first part, all the html before the taglist */
$blogDisplay .= '<h1><a href="/blog/'. $blogseourl .'"> ' . $blogtitle . ' </a></h1> ' . $contentshort . '... <a href="/blog/'. $blogseourl .'">Read More...</a><br /><br /> ' . $author . ' posted on ' . $blogtime . ' | Category: ' . $category . ' | Tags: ';
while ($row = mysqli_fetch_array($query2)) {
$tag = $row['tag'];
/**add the taglist*/
$blogDisplay .= $tag.' ';
}
/**last part, all the html after the taglist*/
$blogDisplay .= ' | <a href="/blog/'. $blogseourl .'#disqus_thread"></a>';
}
mysqli_free_result($query);
这不是在循环内执行查询的最佳方式。所以你必须使用连接。