如果数据库上没有包含图像路径的记录,则为默

问题描述 投票:0回答:4

如果图像表上没有任何记录,我想显示默认图像。我正在使用这个,但是当db的表为空时它什么都没显示。

<img class="image--cover" id="blah" src="<?php echo $row2['img_local']; ?>" alt="Avatar" title="DEFINIDA" onerror="this.onerror=null;this.src='1.png';">

实际上,它甚至没有显示一些破碎的图像图标,甚至没有显示该元素的分配空间。有什么想法吗?

编辑:这是我用来上传图片的“upload.php”代码

    <?php
session_start();
    include('includes/conexao.php');
    $fileinfo=PATHINFO($_FILES["image"]["name"]);
    $newFilename=$fileinfo['filename'] ."_". time() . "." . $fileinfo['extension'];
    move_uploaded_file($_FILES["image"]["tmp_name"],"images/perfis/" . $newFilename);
    $location="images/perfis/" . $newFilename;


$todas_fotos = mysqli_query($conexao, "select * FROM esc_usuarios_fotos WHERE img_usu_codigo = '" . $_SESSION['codigo'] . "'");

if( mysqli_num_rows($todas_fotos) > 0) {
        //$path=$location;
        //if(unlink($path)) echo "Deleted file ";
        mysqli_query($conexao,"UPDATE esc_usuarios_fotos SET img_local = '$location' WHERE img_usu_codigo = '" . $_SESSION['codigo'] . "'");
}
else
{
        mysqli_query($conexao,"insert into esc_usuarios_fotos (img_local, img_usu_codigo) values ('$location', '" . $_SESSION['codigo'] . "')");
};


    header('location:perfil.php');
?>
php database image src
4个回答
0
投票

你可以试试

<img class="image--cover" id="blah" src="<?php if(!empty($row2['img_local'])){ echo $row2['img_local'];}else{ echo '1.png';} ?>" alt="Avatar" title="DEFINIDA" >

还要查看1.png的路径..喜欢images / 1.png或img / 1.png等。


0
投票

我们可以尝试将默认值设置为数据库列img_local(Ex.default.png),因此如果用户没有更改图像或数据库中没有插入图像,则保留default.png,如果用户将其更改为user.png,用户删除图像再次更新到default.png


0
投票

请尝试以下逻辑:

<?php
$row2['img_local'] = 'DB_data_folder_Path_to_image_with_image_name.extension';
// You do not have to use above line.

if ((!empty($row2['img_local'])) && (file_exists($row2['img_local']))) {
    echo '<img class="image--cover" id="blah" src="'.$row2['img_local'].'" alt="Avatar" title="DEFINIDA" onerror="this.onerror=null;this.src=1.png;">';
} else {
    echo 'Show a default image.'; // <img src="path_to_default_image" alt="Default_image"/>
}
?>

0
投票

我的朋友,

如果从HTML透视图中得到这个...并将该图像放在一个DIV中,那么[onerror =“”;]可以更好地工作。

像这样的例子:

<div id="myContainerImg">
    <img class="image--cover" id="blah" src="<?php echo $row2['img_local']; ?>" alt="Avatar" title="DEFINIDA" onerror="putNoImage();">
</div>

<script type="text/javascript">
  function putNoImage(){
    document.getElementById('myContainerImg').innerHTML = 'no image here, or put your own img...';
  }
</script>

而且,你可以看到它运行here on CodePen

© www.soinside.com 2019 - 2024. All rights reserved.