Php 如果数据库上没有带映像路径的记录,则为默认映像

Php 如果数据库上没有带映像路径的记录,则为默认映像,php,database,image,src,Php,Database,Image,Src,如果图像表上没有任何记录,我想显示一个默认图像。我正在使用这个,但是当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';"> “alt=“Avatar”title=“DEFINIDA”oner

如果图像表上没有任何记录,我想显示一个默认图像。我正在使用这个,但是当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';">
“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');
?>
您可以试试

<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" >
“alt=“Avatar”title=“DEFINIDA”>
还要检查1.png的路径。。像images/1.png或img/1.png等,我们可以试试
将默认值设置为数据库列img_local(例如default.png),因此,如果用户不更改图像或数据库中没有插入图像,它将保持default.png,如果用户将其更改为user.png,如果用户删除图像,它将再次更新为默认值。png

请尝试以下逻辑:

<?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"/>
}
?>

我的朋友

如果你从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>

“alt=”Avatar“title=”DEFINIDA“onerror=”putNoImage();">
函数putNoImage(){
document.getElementById('myContainerImg')。innerHTML='这里没有图像,或者放置您自己的img…';
}

而且,您可以看到它正在运行。

仍然没有加载任何内容。是否检查1.png的路径?它是在根文件夹中还是在任何子文件夹中?它是class=“image--cover”还是class=“image cover”?如果1.png在images文件夹中,那么它应该是src=”“路径是正确的,但我在尝试不同的路径时没有任何更改。这太奇怪了,看起来错误的路径和正确的路径之间没有区别,怎么走?
ALTER TABLE\u name ALTER COLUMN\u name SET DEFAULT‘images/DEFAULT.png’
。然后在图像文件夹中添加default.png但如果用户删除图像,则不会显示任何内容,因为在您的代码中,必须至少有一条记录显示default.png,我想要的是,如果数据库中没有任何内容,则显示图像当用户单击“删除图像”按钮时,不要删除它,而是删除查询执行更新查询,然后再次设置为'images/default.png'作为Column的值。是否检查了样式。?风格可能会影响元素。!你能显示一下
中的回音吗?我已经更新了详细信息,但我还是不希望你已经设置了
“images/perfis/”$新文件名
以DB为单位。因此,在尝试显示它时,必须指定完整路径。您可以在浏览器或文件夹结构中添加查看此页面的路径吗