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

标签 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>";
}

然后在浏览器中,我被重定向到一个空白页面。如果我删除该标题函数,我在页面中确实有一个表格,但图像列中没有任何内容。

有什么建议吗?

此外,我尝试使用 <img>在我的 while 循环中标记:

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

好消息是,它有点成功,但图像文件实际上没有显示。

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

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

最佳答案

你不能使用那样的标题...

尝试类似的东西

$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。我没有仔细查看代码,但这应该可行。

关于php - 将数据库中的图像显示为表格中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8074785/

相关文章:

javascript - https 上的 js、css 和图像未加载

C# Linq 比 PHP 慢?解决谜题#236A

mysql - 交易测试不会在完成后回滚

mysql - 查询时不显示 mysql zerofill int 字段中的前导零

mysql - 使用 SUM GROUP BY 获取行总数

php - Codeigniter foreach View 表布局

javascript - 在 PHP 中编码 JSON 并使用 POST 提交

PHP floatval、intval、substr 没有正确返回值

mysql工作台从其他数据库中选择

mysql - 在我的服务器上说 "Could not load file or assembly ' MySql.Web ...“但我的应用程序中有 mysql