2011-11-10 28 views
1

所以我实施了一个赞助管理网站,然后我遇到了一些麻烦。我知道将图像存储到数据库可能是这样的痛苦在脖子上,但这是必需的(有一个文件系统将图像存储在校园服务器中是禁止的)。从数据库显示图像作为表格中的单元格

我创建3个表:

  • 一个信息表,用于存储文本信息,
  • 图像表存储在BLOB时尚图像和
  • 一个id_table表作为参考表保存图片ID的记录和信息ID。
$result=mysql_query("SELECT info_id,info_name,info_year,info_level,info_email,info_describe FROM info"); 
while($row = mysql_fetch_array($result)) 
{ 
    echo "<td>" . $row['info_name'] . "</td>"; 
    echo "<td>" . $row['info_year'] . "</td>"; 
    echo "<td>" . $row['info_level' ] . "</td>"; 
    echo "<td>" . $row['info_email'] . "</td>"; 
    echo "<td>" . $row['info_describe'] . "</td>"; 
    $result_image_id = mysql_query("SELECT id_image FROM id_table WHERE id_info = '{$row['info_id']}'"); 
    $row_image = mysql_fetch_array($result_image_id); 
    $result_image = mysql_query("SELECT image_stuff FROM image WHERE image_id = '{$row_image['id_image']}'"); 
    $row_2 = mysql_fetch_array($result_image); 
    $content=$row_2['image_stuff']; 
    echo "<td>" ; 
    header('Content-type: image/jpeg'); 
    echo $content; 
    echo "</td>"; 
    echo "</tr>"; 
} 

然后在浏览器中,我被重定向到一个空白页。如果我删除了这个头文件函数,我在页面中有一个表格,但图像列中没有任何内容。

有什么建议吗?

此外,我想在我的while循环使用<img>标签:

echo "<img src='$content' />"; 

好消息是,它种制定了但图像文件不实际显示。

我在我的页面中有一个表格,图像列中充满了图像文件,但它看起来就像服务器没有找到图像。

我想我的插入脚本不存在任何问题,因为当我应用该img标签时,“无法显示”标志只出现在其行是我没有将图像文件上传到数据库中的单元格中。 。

回答

2

你不能用头这样的...

尝试类似的东西

$result=mysql_query("SELECT info_id,info_name,info_year,info_level,info_email,info_describe FROM info"); 
while($row = mysql_fetch_array($result)) 
{ 
echo "<td>" . $row['info_name'] . "</td>"; 
echo "<td>" . $row['info_year'] . "</td>"; 
echo "<td>" . $row['info_level' ] . "</td>"; 
echo "<td>" . $row['info_email'] . "</td>"; 
echo "<td>" . $row['info_describe'] . "</td>"; 
$result_image_id = mysql_query("SELECT id_image FROM id_table WHERE id_info = '{$row['info_id']}'"); 
$row_image = mysql_fetch_array($result_image_id); 
$result_image = mysql_query("SELECT image_stuff FROM image WHERE image_id = '{$row_image['id_image']}'"); 
$row_2 = mysql_fetch_array($result_image); 
$content=$row_2['image_stuff']; 
echo "<td>" ; 
echo '<img src="data:image/png;base64,' . base64_encode($content) . '" />'; 
echo "</td>"; 
echo "</tr>"; 
} 

更改PNG为您存储任何类型的图像。我没有看太多的代码,但这应该工作。

+0

如果我没有编码$内容,我会得到像http:// localhost/project_name/Array作为任意图像的URL。一个“无法显示”徽标的东西出现在图像列。是否有可能我的图像插入脚本中有什么错误? – jasonkim

+0

发布您的图像存储代码。 – holycowbatman

+0

'base64_encode()'是一个带宽猪,因为你需要一个二进制图像并将其转换为ASCII字符!为什么不将图像保存到磁盘或者更好,而不是将二进制图像存储在数据库中?将路径存储到可访问Web的文件系统上的二进制映像。 –

0

echo“”。 $ row ['post_image']。 “”

+0

请解释这可以如何帮助提问作者? –

相关问题