Изображение по умолчанию, если в базе данных нет записи с путем к изображению - PullRequest
0 голосов
/ 30 августа 2018

Я хочу показать изображение по умолчанию, если в таблице изображений нет записей. Я использую этот, но он ничего не показывает, когда таблица базы данных пуста.

<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 голосов
/ 31 августа 2018

Мой друг,

Если вы получите это с точки зрения 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>

И вы можете видеть, что он работает здесь на CodePen .

0 голосов
/ 30 августа 2018

мы можем попробовать установить значение по умолчанию для столбца базы данных img_local (например, default.png), поэтому, если пользователь не меняет изображение или нет вставляемого изображения в базе данных, оно остается default.png, если пользователь меняет его на user.png, если пользователь удаляет изображение это снова обновление до default.png

0 голосов
/ 30 августа 2018

Пожалуйста, попробуйте следующую логику:

<?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 голосов
/ 30 августа 2018

вы можете попробовать

<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 и т. Д.

...