PHP MySQL使用正确的ID显示数据库中的图像

时间:2015-06-11 15:38:05

标签: php mysql image

我正在尝试为学校制作博客系统。我几乎把一切都搞定了,我唯一需要让工作就是用正确的帖子显示我数据库中的图像。现在我只显示image_name而不是图像。

这是图像的数据库表的样子: image table

这里是博客文章表: blog post table

这是我在桌面帖子中获得的行的图片,我想要完成的是将具有正确image_id的图像与随附帖子的帖子一起使用。 post table row

php代码:

<?php
//get the posts from the database
    $query = $db->prepare("SELECT post_id, title, LEFT(body, 150) AS body, category, name FROM posts 
                            INNER JOIN categories ON categories.category_id=posts.category_id
                            INNER JOIN `blob` ON blob.image_id=posts.image_id
                            order by post_id DESC limit $start, $per_page");
    $query->execute();
    //make variabels
    $query->bind_result($post_id, $title, $body, $category, $image);

    ?>

这里是代码的另一部分,其中图像应该带有正确的post_id

<?php
                while($query->fetch()): 
                $lastspace = strrpos($body, ' ');
            ?>
            <article>
                <div class="image_small"><?php echo $image ?></div>
                    <div class="text_small"><h3><?php echo $title?></h3><br>
                    <p><?php echo substr($body, 0, $lastspace)?></p>
                    </div>
                <div class="vak"><h4>Vak: <?php echo $category?></h4></div>
                <div class="more_button"><?php echo "<a href='post.php?id=$post_id'><img src='images/more-button.png'  width='70' height='30' border='0'></a>"?></div>

            </article>

            <br><br>
            <?php endwhile;?>

1 个答案:

答案 0 :(得分:3)

您正在获取图像名称而不是图像,因为您正在查询图像名称。更改您的查询,我认为其余的将起作用。

$query = $db->prepare("SELECT post_id, title, LEFT(body, 150) AS body, category, image FROM posts 
                            INNER JOIN categories ON categories.category_id=posts.category_id
                            INNER JOIN `blob` ON blob.image_id=posts.image_id
                            order by post_id DESC limit $start, $per_page");

有几种方法可以使用该blob来显示图像。我喜欢这种方法...

echo '<img src="data:image/jpeg;base64,'.base64_encode( $image ).'"/>';