PHP/MySQL多表选择

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

我试图从一个表中选择多行,这取决于另一个表中给定的ID

我已经用下面的代码完成了一半的工作,但是根据分配给它的不同标记的数量,它会在每个博客上重复多次,我该如何操作才能在博客文章的一个副本上显示多个标记

$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 . ' &#124;  Category: ' . $category . ' &#124;  Tags: ' . $tag . ' &#124; <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 . ' &#124;  Category: ' . $category . ' &#124;  Tags: ';

        while ($row = mysqli_fetch_array($query2)) {
        $tag = $row['tag'];
/**add the taglist*/
$blogDisplay .= $tag.' ';
        }

/**last part, all the html after the taglist*/
$blogDisplay .= ' &#124; <a href="/blog/'. $blogseourl .'#disqus_thread"></a>';

        }
mysqli_free_result($query); 

这不是在循环内执行查询的最佳方式。所以你必须使用连接。