2016-11-21 63 views
0

有人可以帮我解决这个小问题。我是一个新手,我试图从我的发布数据库表中显示一个blob数据类型的图像。我不知道我哪里错了,但这里是我的代码。我想在php中显示图像

$res = $conn->query("SELECT post.postid, post.message,post.photo, post.posted_on, users.username FROM 
          post INNER JOIN users ON post.userid = users.userid ORDER BY 
          post.posted_on DESC LIMIT 10"); 
    $result = ""; 
    while($row = mysqli_fetch_array($res)){ 
      20204040 
      $image = $row['photo']; 

      $result.= '<hr/><form method="post" enctype="multipart/form-data"> 
      <div class="w3-light-grey w3-padding w3-round-xlarge w3-margin-60">'. 
      '<strong> @'.$row['username'].'</strong>'. 
      '</span>'.'<br/> '. 
      '<span class ="ka">'.$row['message'].'</span>'. 

      '<img src="image/$image"/>'. 

      '<br/>'. 
      '<span class="fa fa-comment w3-text-indigo"></span>'. 
      '<a href="#" id="'.$row['postid'].'" class="w3-text-indigo w3-small w3-border-0 w3-light-grey"'. 
      ' data-toggle="modal" data-target="#replyModal">'."Reply".'</a>'. 
      '<span class ="w3-tiny">'.$row['posted_on'].'</div></form>'; 


    } 
+1

而不是“”。“使用”“”。“。也请尝试一次以提供完整路径而不是'image /' –

+0

您知道,如果您想将HTML内容包含在PHP内容中,而不是尝试将所有HTML代码都包含到单个PHP字符串中,那么您可以终止PHP标记''>'然后按照通常的方式放入HTML,一旦你完成了HTML,只需放入'<?php'并继续放在你离开的地方 - 不要忘记包含'}' – mike510a

回答

0

检查您的代码的初学者什么是20204040坐在那里?这将导致错误,所以你需要摆脱的那个......

在你的回声“”和你级联,你有这样的

'<img src="image/$image"/>'. 

改成这样......

'<img src="image/'.$image.'"/>'. 

你在其他地方做过,但在这种情况下没有。

+0

谢谢,抱歉20204040我粘贴错误,但现在,而不是显示图像,它显示带有问号的小黑色菱形符号 –

+0

那么图像的实际路径是什么? – TimBrownlaw

0

您正在将整个图像存储在blob列中。因此,您不能将这些存储的数据用作图像的简单路径。因此,没有机会做一个简单:<img src="image/$image">.

您将需要通过返回图像/ JPG内容类型的PHP文件“中投”的形象,并使用这个PHP文件的路径,如:<img src="image_builder.php?image_id=999.php">

查看该帖子的接受答案:How can I store and retrieve images from a MySQL database using PHP?了解更多详细信息。

顺便说一句,如果你觉得这太复杂,考虑只存储磁盘中存储的图像的路径。在这种情况下,你只需要一个varchar列,而不是一个blob。因此,您可以使用您的方法回应<img src="image/$image_path">.