0

我想显示存储在表格中的图像,在 PHP 数据库中,表格名称是“ gifts ”,包含图像的列被命名为“ pics

(我知道这不是一个好方法,但我需要这样做)

现在当我运行以下代码时:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org  /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Untitled Document</title>

</head>

<body>

<?php

$con = mysql_connect("localhost","root","");

if (!$con)

 {

  die('Could not connect: ' . mysql_error());

 }


mysql_select_db("sendemotions", $con);


$result = mysql_query("SELECT * FROM gifts");


echo "<table border='1'>

 <tr>

  <th>Item Picture/th>

 <th>Name Of Item</th>

 <th>Item Type</th>

 <th>Item Price</th>


</tr>";


while($row = mysql_fetch_array($result))

  {

 echo "<tr>";


 echo "<td>" . $row['pics'] . "</td>";

 echo "<td>" . $row['g_name'] . "</td>";

   echo "<td>" . $row['g_price'] . "</td>";

  echo "<td>" . $row['g_type'] . "</td>";


  echo "</tr>";

 }

 echo "</table>";


mysql_close($con);

?> 

</body>

</html>

我得到一个显示的表格,但它在名为图片的列中有奇怪的值: 这就是输出

请告诉我错误是什么以及如何解决这个问题:(我非常需要这样做。

4

3 回答 3

2

我认为您需要第二个 php 脚本来获取图像。然后,此脚本需要发送图像标头以显示图像。示例将类似于:

<?php

$id = $_GET['id']; #WARNING INSECURE. FOR DEMO ONLY!!!

connectToDatabase(); #However you do it

$sql = "SELECT pics FROM gifts WHERE ID = $id";

$result = mysql_query($sql) or die(mysql_error());  
$row = mysql_fetch_array($result);

header("Content-type: image/jpeg");
echo $row['pics'];
$db->close();

?>

警告:Abovo 代码非常不安全!!!您需要检查 $_GET['id'] 是否为整数!

然后,在您的原始 php 脚本中,您会将其包含在 imagerow 中。

echo '<td><img src="http://yourdomain/imagescript.php?id="' . $row['id'] . '"></td>';

这段代码不是 testet ......只是给你一个快速的概述。

于 2012-12-22T14:56:33.750 回答
2

首先,您必须学习 HTML 基础知识。
在 HTML 中,图像通过<img>标签显示,给定 URL,指向资源。

接下来,不要将图像存储在数据库中,这对于文件来说是非常不自然的,而是将它们放在目录中。如果您在 id 之后重命名它们,您甚至不需要将路径存储在数据库中 - 只需即时构建它:

<img src="/img/gifts/<?=$row['id']?>.jpg">
于 2012-12-22T15:16:33.220 回答
1

我想您将图像作为 Blob 存储在数据库中。然后你必须在 php 输出中设置标题内容类型。
检查此链接显示来自 blob mysql 的图像

另一种方法是使用base64_encode
base64_encode
显示存储在 mysql blob 中的图像

于 2012-12-22T14:57:45.363 回答