如何将与帖子ID关联的图片ID链接到图库?

时间:2018-02-05 01:26:52

标签: php

我正在为用户上传的帖子创建一个帖子页面,该帖子将显示用户上传的图片及其书面信息。

我的具体问题是如何链接与该帖子相关联的特定图片ID,以便只显示属于帖子的那些图片而不是文件夹中的所有图片?我需要将所有img_id链接到每个帖子的post_id

因此,如果帖子中post_id为“1”的帖子与img_id 1到4相关联,而后续img_id属于其他post_id } s,我想只显示那些img_id

这是我当前的HTML / PHP,用于在post.php页面上显示图像:

<?php
  $files=scandir("admin/images");
  ?>

<div class="carousel-inner">

          <?php
            $i = 0;
            for ($a = 2; $a < count($files); $a++):
          ?>

          <div class="item <?php echo $i == 0 ? 'active': '';  ?>" align="center">
            <img src="admin/images/<?php echo $files[$a];?>">
          </div>

          <?php
            $i++;
            endfor;
          ?>
        </div>

我试过更换

            <img src="admin/images/<?php echo $files[$a];?>">

       <?php 
        $imsql = "SELECT img_name, img_path FROM images WHERE post_id = '$id' ";
        $q2 = $db->query($imsql);
        if($q2->num_rows>0){ 
          while ($imrow = $q2->fetch_object());
          echo "<img src='admin/images/".$row->img_id."' width='100%' height='100%' >";
          }
        ?>

但我一直得到 Undefined属性:stdClass :: $ img_id 错误。

这是我的images表格供参考,以防万一有人想看看它:

CREATE TABLE `images` (
  `image_id` int(11) NOT NULL,
  `post_id` int(11) NOT NULL,
  `img_path` varchar(500) NOT NULL,
  `img_type` varchar(500) NOT NULL,
  `img_name` varchar(500) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

1 个答案:

答案 0 :(得分:4)

首先,摆脱这一行中的分号:

while ($imrow = $q2->fetch_object()); // <<<

它结束了声明,死于其轨道并且无法引用下一行上回显的数据。

你也在这里使用两个不同的变量

while ($imrow,然后再使用$row->img_id;他们需要匹配。

使用PHP的错误报告来捕获这样的错误:

附注:请记住为要添加到}循环的左大括号{添加额外的结束while大括号。

修改/荣誉:

在发现Lawrence时(在评论中),您错过了查询中的img_id。但是,您需要使用image_id作为参考。

脚注:

使用准备好的声明,保护自己免受SQL injection的攻击。<​​/ p>