默认图像,如果数据库中没有包含图像路径的记录

时间:2018-08-30 06:08:03

标签: php database image src

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

<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');
?>

4 个答案:

答案 0 :(得分: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等。

答案 1 :(得分:0)

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

答案 2 :(得分: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"/>
}
?>

答案 3 :(得分: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