如何将数据库中的图片显示为heredoc?

时间:2013-02-22 09:03:32

标签: php mysql

我一直试图将图像显示到heredoc它无法正常工作,我没有错误 但如果我把它们展示出来,那么他们就能很好地展示出来。可能是什么问题? 如有任何帮助,我将不胜感激。 这是代码,我在heredoc和out中显示了两次图像,以便您获得清晰的视图。

<?Php
$target = "image_uploads/";
$image_name = (isset($_POST['image_name']));
$query ="select * from
 tish_user inner join tish_images
 on tish_user.user_id = tish_images.user_id
 WHERE tish_images.prof_image = 1";
    $result= $con->prepare($query);
    $result->execute();

$table = <<<ENDHTML
<div style ="text-align:center;">
<h2>Client Review Software</h2>
<table id ="heredoc" border ="0" cellpaddinig="2" cellspacing="2" style = "width:100%" ;
margin-left:auto; margin-right: auto;>
<tr>
<th>Name</th>
<th>Last Name</th>
<th>Ref No</th>
<th>Cell</th>
<th>Picture</th>
</tr>
ENDHTML;

while($row = $result->fetch(PDO::FETCH_ASSOC)){
    $date_created = $row['date_created'];
        $user_id = $row['user_id'];
        $username = $row['username'];

        $image_id = $row['image_id'];
        #this is the Tannery  operator to replace a pic when an id do not have one
$photo = ($row['image_name']== null)? "me.png":$row['image_name'];
#display image 
             # I removed this line up to here 
        echo '<img src="'.$target.$photo.'" width="100" height="100">';



$table .=  <<<ENDINFO
<tr>
<td><a href ="client_details.php?user_id=$user_id">$username </a></td>
<td>$image_id</td>
<td></td>
<td>c</td>
<td><img src="'.$target.$photo.'" width="100" height="100">
</td>
</tr>
ENDINFO;
}
    $table .= <<<ENDHTML
</table>
<p>$numrows"Clients</p>
</div>
ENDHTML;
echo $table;
?>

3 个答案:

答案 0 :(得分:2)

使用heredoc并在未显示图片的浏览器中查看其来源

图像src就像这个<img src="'.../images/.me.png.'" ...这是错误的,因为你可以看到单引号和额外的。 (期间标志)在img src的双引号内

试试这段代码

$table .=  <<<ENDINFO
<tr>
<td><a href ="client_details.php?user_id=$user_id">$username </a></td>
<td>$image_id</td>
<td></td>
<td>c</td>
<td><img src="{$target}{$photo}" width="100" height="100">
</td>
</tr>
ENDINFO;
}

所以

<img src="'.$target.$photo.'" width="100" height="100">

将是

<img src="{$target}{$photo}" width="100" height="100">

如果有解决方法,请告诉我,请务必检查浏览器的view source选项中的HTML来源以查看打印的内容

答案 1 :(得分:1)

<td><img src="'.$target.$photo.'" width="100" height="100">

你的heredoc中的这一行对我来说没有意义。您应该直接使用字符串中的变量,而不使用单引号和concatentation-dots。

像这样:

<td><img src="$target$photo" width="100" height="100">

但是因为你想要一个接一个地打印两个变量,你可能需要使用卷曲语法:

<td><img src="{$target}{$photo}" width="100" height="100">

您可以阅读有关卷曲语法的更多信息 here。您基本上将变量包装在大括号({})中,以帮助PHP了解变量名称的开始和结束位置。

答案 2 :(得分:0)

这样做并在任何你想要的地方显示声明的变量。 还删除了里面的heredoc里面放了$ pic。

$pic = '<img src="'.$target.$photo.'" width="50" height="50">';
 echo $pic  ;