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

标签 php mysql image

我这里有一个 PHP 公告板,可以发布评论和图像。我能够将我的评论和图像存储到数据库中。我的问题涉及 2 个 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'];

 ?>

最佳答案

您可能希望在 SELECT 查询中使用 JOIN 语法。类似于:

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

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

即使第二个表 (postImages) 上没有匹配项,LEFT JOIN 仍将返回第一个表 (forumPosts) 中的所有行>).

Mysql Join Syntax

关于php - 在我的 PHP 留言板中,如何输出与相应帖子相对应的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47842013/

相关文章:

javascript - 当我单击该 div 时刷新特定 div。无需重新加载整个页面。我特别希望使用 onclick 函数

php - 使用 zend_registry 在缓存内存中设置标志

php - 在 php/mysql 中为我的用户上传和下载

mysql - 无法在 PHP MYSQL 中正确搜索

php - 使用 2 个文本字段将多个图像上传到数据库

javascript - 将图像添加到 JavaScript 数组,然后在另一个函数调用中显示它们

php - Laravel 5.1 - 在保存到数据库时生成唯一的 10 个字母数字字符代码

mysql - 由多个列和 NULL 值唯一

Android - 显示来自可绘制资源的图像

php - CSS 高度 100% 不起作用