以下のクエリでは、ユーザーのプロフィール画像を選択して出力しようとしています。私の挿入クエリと選択クエリが動作しています(私は信じています)。今、私はイメージをアップロードすることができ、ユーザーのuser_idはデータベースのイメージに関連付けられています。次に、私の選択したクエリで、そのユーザーに関連付けられているイメージを選択しようとしています。select query issueの出力
私のデータベースはシンプルで、その中には次のものしかありません... 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>
変更あなたの' getPhotoで戻り値() '画像列の代わりに列全体を返すだけです –
また、$ profPicはデータがデータベースに挿入されているかどうかを確認しています。データをリフレッシュすると、データベースにデータが挿入されないため、デフォルトが表示されます。したがって、データベースからデータを取り出すだけの '$ profPic'に無条件のステートメントを割り当ててください。 –
これを行うと、アップロードされた写真が表示(選択)されなくなります。 – Becky