首页 文章

如何使用 php 和 mysql 从多列中检索和输出图像?

提问于
浏览
2

更新:

我的 SQL 表中有十列:id,imgid,urlid,image1,image2,image3,image4,image5 和 comment。 Id,imgid 和 urlid 是 int 类型。图像[1]是中等型。网址和评论是文字类型。 Imgid 是上传的图片数量(应该是 5),urlid 是提交的网址数量(现在应该是 1),url 保存网址,注释保存用户评论。我想从一行中的图像列中检索并输出所有图像数据,但我得到了撕裂的页面图标。我使用 front.php 输出图像,使用 get.php 将图像转换为可视格式。

这是我的 front.php:

<?php

mysql_connect ("","","") or die(mysql_error());
mysql_select_db ("") or die(mysql_error());

$defaultqry = mysql_query ("SELECT * FROM dbp");

while($row = mysql_fetch_assoc($defaultqry))
{

echo ($row['image1'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=1 " width="30" height="30"/> ' : '';
echo ($row['image2'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=2 " width="30" height="30"/> ' : '';
echo ($row['image3'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=3 " width="30" height="30"/> ' : '';
echo ($row['image4'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=4 " width="30" height="30"/> ' : '';
echo ($row['image5'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=5 " width="30" height="30"/> ' : '';

}
?>

这是我的 get.php:

<?php

mysql_connect ("","","") or die(mysql_error());
mysql_select_db ("") or die(mysql_error());

$query = mysql_query("SELECT * FROM dbp WHERE id = ".mysql_real_escape_string($_GET['id']));
$row = mysql_fetch_array($query);

$col = intval($_GET['col']);

if(isset($row['image'.$col]) && $row['iamge'.$col] != NULL){
    $content = $row['image'.$col];
}else{
    exit; // col is not existent, or image is empty
}

header('Content-type: image/jpg');
echo $content;
exit;

?>

1 回答

  • 1

    首先,您使用 DATAbase,将数据存储在其中而不是文件中。 (您应该将 link/path 存储到数据库中的文件而不是图像本身,这只会炸毁您的数据库并使其变慢)请参阅在 DB 中存储图像 - 是还是不?以获取有关此主题的更多信息。

    但如果你想这样做,那么你将必须输出行的 id 和列标识符,如:

    echo ($row['image1'] != NULL) ? '<img src="get.php?id='.$row['id'].'&col=1 " width="30" height="30"/> ' : '';
    

    在你的 get.php:

    mysql_connect ("localhost","","") or die(mysql_error());
    mysql_select_db ("") or die(mysql_error());
    
    $query = mysql_query("SELECT * FROM dbp WHERE id = ".mysql_real_escape_string($_GET['id']));
    $row = mysql_fetch_array($query);
    
    $col = intval($_GET['col']);
    
    if(isset($row['image'.$col]) && $row['image'.$col] != NULL){
        $content = $row['image'.$col];
    }else{
        exit; // col is not existent, or image is empty
    }
    
    header('Content-type: image/jpg');
    echo $content;
    exit;
    

相关问题