2016-10-19 2 views
-1

В нижеприведенном запросе я пытаюсь выбрать изображение профиля пользователя и выводить его. Мой запрос на ввод и выбор запроса работает (я считаю). Прямо сейчас, я могу загрузить изображение, а user_id пользователя связан с изображением в моей базе данных. Затем в моем запросе выбора я пытаюсь выбрать изображение, связанное с этим пользователем.Вывод проблемы с выделенным запросом

Моя база данных для этого проста и имеет только следующие ... id, user_id, img.

Я считаю, что этот вопрос может находиться с моим выходом, здесь:

<img id="profile-pic" src="<?php echo (!empty($profPic) && $profPic != 0)? $profPic['img'] : "profile_images/default.jpg"; ?>" alt="<?php echo (!empty($profPic) && $profPic != 0)? "Profile Picture" : "No Picture"; ?>" /> 

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

function getPhoto($con,$dest) 
    { 
     $user_id = (isset($_SESSION['user']) ? $_SESSION['user'] : ""); //added 

     $result = mysqli_query($con,"SELECT * FROM `profile_img` where `user_id` = '$user_id' ORDER BY `id` DESC LIMIT 1"); 

     if($row = mysqli_fetch_array($result)) 
      return $row; 

     return 0; 
    } 


// Make sure all functions above are include here 

// Get the database connection 
$con  = Connection(); 
// Check for post 
if(isset($_POST['create'])) { 
     // Try uploading 
     $upload = UploadFile($_FILES); 
     // If upload fails 
     if(!$upload['success']) 
      echo '<h3>Sorry, an error occurred</h3>'; 
     else { 
       // You could add error handling here based on the results of 
       // each function's success or failure below. 

       // Try to save it 
       $saveToDb = SaveToDb($con,$upload['file']['dest']); 
       // Get the profile from image name 
       $profPic = ($saveToDb)? getPhoto($con,$upload['file']['dest']) : false; ?> 


       <?php 
      } 
    } 
?> 
<img id="profile-pic" src="<?php echo (!empty($profPic) && $profPic != 0)? $profPic['img'] : "profile_images/default.jpg"; ?>" alt="<?php echo (!empty($profPic) && $profPic != 0)? "Profile Picture" : "No Picture"; ?>" /> 
<form action="" method="POST" enctype="multipart/form-data"> 
    <input type="file" name="file" class="inputbarfile" onchange="readURL(this);"> 
    <img width="400px" height="300px" id="file" src="#" alt="your image"> 
    <input type="submit" name="create" id="signinButton" value="Upload"> 
</form> 
+0

изменения возвращаемого значения в вашем файле 'getPhoto()' от возвращения '$ row' в' $ строки [ 'IMG'] 'в результате над вами возвращают весь столбец, а не только столбец изображения. –

+0

Также ваш $ profPic проверяет, были ли данные занесены в базу данных. Поскольку, если вы обновляете данные, данные не вставляются в базу данных, отображается значение по умолчанию. Поэтому просто присвойте отдельный безусловный оператор '$ profPic', который извлекает только данные из базы данных. –

+0

Выполнение этой операции останавливает загрузку загруженной фотографии (выбрано). – Becky

ответ

1

Вызов $profPic способ, которым вы его назвали, не позволит отображать данные на странице обновления, потому что при обновлении страницы данные не вставлены.

Да, вы можете просто изменить его на:

$profPic = getPhoto($con,$dest); 
-1

Проверьте код, который вы назвали вашу getPhoto() функции на представить вашу форму, так что, очевидно, когда вы обновите страницу, что функция не будет Тригер, как его называли в if (isset($_POST['create'])), который будет ложным при обновлении страницы.

поэтому, если вы хотите отображать изображение каждый раз, просто вызывайте эту функцию на $_SESSION['user'], который будет отображать ваше изображение каждый раз.

дайте мне знать, если вы все еще сталкиваетесь с проблемой.