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

По сути, вся мысль здесь об изменении изображений профиля, и они будут загружены в базу данных.

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

<form method="post" enctype="multipart/form-data">    
    <div class="row form-group">
        <div class="col col-md-3">
            <label for="text-input" class="form-control-label">Profile Picture</label>
        </div>
        <div class="col-9 col-md-9">
            <div class="input-group">
                <?php  
                    $query = "SELECT image FROM member WHERE member_id = '$ID'";  
                    $result = mysqli_query($con, $query);  
                    if(mysqli_num_rows($result)>0){
                        while($row = mysqli_fetch_array($result))  
                        {  
                            echo '<img src="data:image/jpeg;base64,'.base64_encode($row['image']).'">';  
                        }  
                    } else{
                        echo "<img src='images/icon.jpg' style='height:200px'draggable='false'>";
                    }
                ?> 
                <div class="col-12">
                    <input type="file" name="image" id="image" style ='margin-left:-10px;margin-top:5px'>
                </div>
                <div class="col-12">
                    <input type="submit" name="insert" id="insert" value="Change Profile Picture" class="btn btn-primary" style ='margin-left:-10px;margin-top:5px'> 
                </div>
                <?php   
                    if(isset($_POST["insert"])){  
                        $file = addslashes(file_get_contents($_FILES["image"]["tmp_name"]));  
                        $query = "UPDATE member SET image = '$file' WHERE member_id='$ID'";  
                        if(mysqli_query($con, $query)){ 
                            echo ("<script LANGUAGE='JavaScript'>
                                window.alert('Profile Picture has been successfully changed!');
                                window.location.href='edit.php';
                                </script>");
                        }  
                    }
                ?>  
            </div>
        </div>
    </div>
</form>

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

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

if(mysqli_num_rows($result)>0){
    while($row = mysqli_fetch_array($result)) { 
        if (isset($row['image']) && !empty($row['image'])) {
            echo '<img src="data:image/jpeg;base64,'.base64_encode($row['image']).'">';
        } else {
            echo "<img src='images/icon.jpg' style='height:200px'draggable='false'>";
        }                       
    } // endwhile
} else{
    echo "no result found";
}
0 голосов
/ 21 сентября 2018

При написании HTML или CSS-кода внутри PHP вы должны ставить \ перед всеми двойными кавычками, и вам нужно изменить все кавычки на двойные. Как показано ниже:

          echo "<img src=\"images/icon.jpg\" style=\"height:200px;\" draggable=\"false\">";

Я не проверялваши PHP-коды. Если вы их правильно закодировали, проблема, очевидно, в том, что я упоминал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...