在我的PHP留言板中,如何输出与相应帖子对应的图像?

问题描述 投票:0回答:1

我在这里有一个PHP公告板,能够发表评论和图像。我能够将我的评论和图像存储到数据库中。我的问题涉及我的两个SQL表,一个用于存储的帖子,另一个用于存储图像。当我回复我的帖子表时,我想回应帖子体内的相应图像。我已经设置了我的表以匹配DATETIME的列属性,但是当我在使用posts表的foreach循环中时,我无法理解如何访问我的图像表。我已经包含了我的index.php文件和我的getImage.php文件的代码。非常感谢帮助。

我在$ ID = $ _GET ['id']中对我的getImage文件进行了更新;其中'id'需要小写。我现在正在我的桌子上显示一些图像,但有些只是部分图像。我想我正在路上。我知道我需要一个if语句来确定在显示之前是否在帖子中有图像。感谢所有的帮助。

<?php

include('connect.php');
$query = 'SELECT * FROM forumPosts LEFT JOIN PostImages ON 
forumPosts.DATETIME = PostImages.ImageDATETIME ORDER BY replyIndex 
ASC';

$statement = $db->prepare($query);
$statement->execute();
$posts = $statement->fetchAll();

$statement->closeCursor();
echo "<table>";
foreach ($posts as $post){
if ($post['post_type'] == "r"){
    $post_id = $post['post_id'];
    echo "<tr bgcolor='beige'><td>reply</td><td>". 
    $post['post_title'] . "</td ><td>". $post['post_body'] . "<img 
    src='getImage.php?id=".$post['ID']."'>". "</td><td>". 
    $post['DATETIME']. "</td><td>". $post['replyIndex']. "</td>
    <td>".$post['post_type']."</td>";

?>  

<?php

include('connect.php');


 $ID = $_GET['id'];

 $query = "SELECT * FROM PostImages WHERE ID=:ID";
 $statement = $db->prepare($query);
 $statement->bindvalue(':ID', $ID);
 $statement->execute();
 $row = $statement->fetch(PDO::FETCH_ASSOC);


  header("Content-type: image/jpeg");
  echo $row['image'];

 ?>
php mysql image
1个回答
1
投票

您可能希望在JOIN查询中使用SELECT语法。就像是:

$query = 'SELECT * FROM forumPosts LEFT JOIN postImages ON forumPosts.DATETIME = postImages.imageDATETIME ORDER BY replyIndex ASC'

然后,您可以使用$post['name']$post['image']从foreach循环获取图像数据。

即使第二张桌子上没有匹配(LEFT JOIN),forumPosts仍会返回第一张桌子(postImages)中的所有行。

Mysql Join Syntax

© www.soinside.com 2019 - 2024. All rights reserved.