mysql 如果数据库中没有特定的图像,如何显示默认图像?

hpcdzsge  于 2023-04-19  发布在  Mysql
关注(0)|答案(6)|浏览(149)

如何显示特定的图像的情况下,如果该图像是不可用的数据库?我有
1.数据库名称:项目
1.表名:图像

  1. fields:id(int),file(varchar)[image url stored here],name(varchar)[image description]
    PHP代码在这里:
<?php
$con=mysql_connect("localhost","root","") or die("no connection ");
mysql_select_db("project")or die("no database exit");
echo "<h2 align='center'>Displaying image from database</h2>";
$res=mysql_query("SELECT * FROM image");
echo "<table>";
while ($row=mysql_fetch_array($res)) {
    echo "<tr>";
    echo "<td>";echo $row["id"];echo "</td>";
    echo "<td>"; ?> <img src="<?php echo $row["file"]; ?>" height="100px" width="150px">    <?php echo "</td>";
    echo "<td>";  echo $row["name"]; echo "</td>"; 
    echo "</tr>";   
}
?>
</table>
bq3bfh9z

bq3bfh9z1#

简单地使用@getimagesize描述w3schoolphp.net这个方法将检查图像是否实际存在。2如果图像从数据库或从目标删除,将返回false。

<? 
$img="image url"; //orginal image url from  db 
if(!@getimagesize($img))
{
    $img="default image"         //if image not found this will display
 }

?>

更新

这样使用代码

<?php
$con=mysql_connect("localhost","root","") or die("no connection ");
mysql_select_db("project")or die("no database exit");
echo "<h2 align='center'>Displaying image from database</h2>";
$res=mysql_query("SELECT * FROM image");
echo "<table>";
while ($row=mysql_fetch_array($res)) {
     $img=$row["file"]; //orginal image url from  db 
    if(!@getimagesize($img))
    {
        $img="default image"         //if image not found this will display
     }

    echo "<tr>";
    echo "<td>";echo $row["id"];echo "</td>";
    echo "<td>"; ?> <img src="<?php echo $img; ?>" height="100px" width="150px">    <?php echo "</td>";
    echo "<td>";  echo $row["name"]; echo "</td>"; 
    echo "</tr>";   
}
?>
</table>
zaqlnxep

zaqlnxep2#

使用简单的if条件

<img src="<? php if($row["file"]){ echo $row["file"] ; } else{// other image name}?>" height="100px" width="150px">
b5lpy0ml

b5lpy0ml3#

你可以使用三元运算符来实现,参考下面的内容并给予一下

<?php
        $con=mysql_connect("localhost","root","") or die("no connection ");
        mysql_select_db("project")or die("no database exit");
        echo "<h2 align='center'>Displaying image from database</h2>";
        $res=mysql_query("SELECT * FROM image");

        echo "<table>";
        while ($row=mysql_fetch_array($res)) {
 // USE TERNARY OPERATOR HERE
        $imagePath = (isset($row["file"]) && !empty($row["file"]) && file_exists($row["file"]))?$row["file"]:'img.default.jpg'; // REPLACE YOUR IMAGE PATHE HERE
               echo "<tr>";
            echo "<td>";echo $row["id"];echo "</td>";
            echo "<td>"; ?> <img src="<?php echo $imagePath; ?>" height="100px" width="150px">    <?php echo "</td>";
            echo "<td>";  echo $row["name"]; echo "</td>"; 
            echo "</tr>";   
        }
        ?>
        </table>
vzgqcmou

vzgqcmou4#

如果数据库中的文件引用指向一个可能已被删除的文件,则必须检查该文件是否仍然存在。理想情况下,当文件被删除时,数据库中的引用也应该被更新,以避免此类问题,但这并不总是可能的,特别是当许多人都可以访问FTP时。
检查文件是否存在:

if(file_exists($yourImage)){
echo $yourImage;
}
else{
echo $defaultImage;
}
oxcyiej7

oxcyiej75#

您将目录存储到varchar中的图像?如果是这样,请尝试更改数据库以使用BLOB存储图像本身,如here所述
你可以使用if语句。

<img src="<? php if($row["file"]){echo $row["file"];} else { echo '/directory/to/image.jpg'}?>" height="100px" width="150px">

我还建议使用include,这可能不是100%与您当前的项目相关,但在需要使用多个数据库连接时可以提供帮助。
1.创建一个dbconnect.php文件//任意命名
1.在dbconnect.php文件中插入代码:
<? php $con=mysql_connect("localhost","root","") or die ("no connection"); mysql_select_db("project")or die("no database exit");?>
1.在任何文件中使用include_once 'dbconnect.php'

cczfrluj

cczfrluj6#

<?php if($result["image"]==""){
         $path='upload/blankphoto.png';
         }
         else 
        {
            $path="upload/".$result['image'];
            }?>

    <img src="<?php echo $path?>" height="100" width="100">

相关问题