【问题标题】:join multiple table together将多个表连接在一起
【发布时间】:2015-08-09 02:41:04
【问题描述】:

我正在尝试将两个表连接在一起。在 posts 表中,我有两列 post_id 和 post_message。

在另一个表名post_attach中有row_id、postid(同post_id)和file_name(同ms.jpg)。

一个帖子可能有多个附件。但是我不知道要查询什么来显示一个带有多个附件的帖子。这是我的查询...

$s = " SELECT posts.post_id,post_message, post_attach.file_name from posts join post_attach on post_id=row_id;

<?php

$conn = mysqli_connect('localhost', 'root', 'root', 'blog') or die();


?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <h3>Allo post with their attahcment</h3>
        <?php 
            $s = " SELECT posts.post_id,post_message, post_attach.file_name from posts join post_attach on post_id=row_id;
";
            $q = mysqli_query($conn,$s);


            while ($row = mysqli_fetch_array($q)) {?>
                <p>Post No: <?php echo $row['post_id'] ?></p>
                <p>Post text: <?php echo $row['post_message'] ?></p>
                <p>Post attach: <?php echo $row['file_name'] ?></p>
            <?php } ?>
    </body>
</html>

我想要类似的东西:

post no: 1, post text: hello php, 附件: ms.jpg, ms.jpeetc.

最后一句话是每个帖子都会显示它们的相关附件。

【问题讨论】:

  • 您的查询输出了什么?检查了吗?

标签: php mysql


【解决方案1】:

我不会直接加入表格。我将遍历主帖子表并显示帖子 ID 和帖子消息,然后遍历附件。比如:

<?php 
$s = "SELECT posts.post_id,post_message FROM posts";
$q = mysqli_query($conn,$s);

while($row = mysqli_fetch_array($q))
{
    ?>
    <p>Post No: <?php echo $row['post_id'] ?></p>
    <p>Post text: <?php echo $row['post_message'] ?></p>
    <p>
        Post attach:
        <?php
        $att = "SELECT post_attach.file_name FROM post_attach WHERE post_id = $row[post_id]";
        $files = mysqli_query($conn,$att);
        while($row_files = mysqli_fetch_array($files))
        {
            echo $row_files['file_name'] . "<br>";
        }
        ?>
    </p>
    <?php
}
?>

【讨论】:

  • victor 第 18 行出了点问题。浏览器是这个问题......附加后:警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在 /var/www/html 中给出/test/test.php 第 18 行
猜你喜欢
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 2013-06-30
  • 1970-01-01
相关资源
最近更新 更多