从动态创建的路径显示图像

时间:2017-12-11 14:04:27

标签: php mysql image

我将多个图像保存到动态创建的数据库路径中。但现在的问题是图像在取出时没有显示。我在数据库中添加了我的两个表,还有我在输入图像时创建的php代码和目录。我认为我的问题是图像源。我无法修改图像源路径。 Plz帮助。

我在数据库中有两个表:第一个表:advt

- ad_id
- cus_id
- ad_name
- ad_des
- date

第二桌:Full texts

- img_id
- ad_name
- img_name (type: longblob)
- img_type
- img_size

这是我的PHP代码,用于显示数据库路径中的图像:

<?php 
include('include/config.php');

 if($stmt2 = $connection->prepare("SELECT img_id, ad_name, img_name, img_type, img_size FROM `full texts`")){ 

       $stmt2->execute(); 
       $stmt2->store_result(); 
       $stmt2->bind_result($img_id, $ad_name, $img_name, $img_type, $img_size); 
       while($stmt2->fetch()){ 
         ?>
           <img src="'ad/data/img/'.$cus_id.'/'.$ad_id.'/'<?php echo $img_name; ?>" width="220" height="220"><br>

         <?php
       } 
       $stmt2->close();
    } 
?>

这是我创建目录以保存图像的方式:

$cus_id = $_POST['cus_id'];
$ad_id = $_POST['ad_id'];
$dir='ad/data/img/'.$cus_id.'/'.$ad_id.'/';
if(!file_exists($dir) || !is_dir($dir)){
    mkdir($dir, 0777, true);
    chmod($dir, 0777, true);
}

4 个答案:

答案 0 :(得分:1)

我认为错误在你的PHP代码中,因为在<?PHP?>

之外使用了php变量

更正后的代码:

    <?php 
include('include/config.php');

 if($stmt2 = $connection->prepare("SELECT img_id, ad_name, img_name, img_type, img_size FROM `full texts`")){ 

       $stmt2->execute(); 
       $stmt2->store_result(); 
       $stmt2->bind_result($img_id, $ad_name, $img_name, $img_type, $img_size); 
       while($stmt2->fetch()){ 

          echo  "<img src=ad/data/img/$cus_id/$ad_id/$img_name  width="220" height='220'><br>";


       } 
       $stmt2->close();
    } 
?>

<强>除了

$stmt3 = $connection->prepare("SELECT ad_id, cus_id, ad_name, ad_des, date FROM `advt`" //where condition to particular img_id)
       $stmt3->execute(); 
           $stmt3->store_result(); 
           $stmt3->bind_result($ad_id, $cus_id, $ad_name, $ad_des, $date); 

答案 1 :(得分:1)

如果您粘贴了浏览器获得的内容,那将会很有帮助.html代码 但是你将php和普通html混合在一起并丢失了它,它应该是:
           echo '<img src="ad/data/img/'.$cus_id.'/'.$ad_id.'/'.$img_name.'" width="220" height="220"><br>';

该块前没有?>,之后没有<?php

答案 2 :(得分:1)

while($stmt2->fetch()){ 

    $src = 'ad/data/img/'.$cus_id.'/'.$ad_id.'/'.$img_name;
     ?>
       <img src="<?php echo $src; ?>" width="220" height="220"><br>

     <?php
   }

答案 3 :(得分:1)

试试这个:

<?php 
    include('include/config.php');

    if($stmt = $connection->prepare("SELECT 
                                     a.img_id, 
                                     a.ad_name, 
                                     a.img_name, 
                                     a.img_type, 
                                     a.img_size, 
                                     b.ad_id, 
                                     b.cus_id 
                                     FROM `full texts` a 
                                     INNER JOIN advt b
                                     ON a.ad_name=b.ad_name
                                     ")){ 


           $stmt->execute(); 
           $stmt->store_result(); 
           $stmt->bind_result($img_id, $ad_name, $img_name, $img_type, $img_size, $ad_id, $cus_id);   

           while($stmt->fetch()){ 

              echo  "<img src=ad/data/img/$cus_id/$ad_id/$img_name  width='220' height='220'><br>";


           } 
           $stmt->close();
           } 

?>