将数据库中的图像显示为表格中的单元格

时间:2011-11-10 03:49:38

标签: php mysql

所以我正在实施一个赞助管理网站,然后我遇到了一些麻烦。我知道将图像存储到数据库可能是如此痛苦但这是必需的(禁止在校园服务器中存储图像文件系统)。

我创建了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 个答案:

答案 0 :(得分: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。我没有多看代码,但这应该有用。

答案 1 :(得分:0)

回声&#34;&#34; 。 $ row [&#39; post_image&#39;]。 &#34;&#34;