ユーザーのプロフィール画像を表示しています。ユーザーが自分自身を更新していない場合、デフォルトのプロフィール画像を投稿するif文を作成しました。これはすべて動作しますが、私が把握できないことは、設定されていないものに対してエラーを出さずにエコーするか、それぞれを呼び出す方法です。ifステートメントの結果を設定する
たとえば、プロファイル画像セットを持っていれば、それは正常に表示されますが、他の変数が定義されていないというエラーが表示されます。
私はコードを変更する必要がありますか?
$pics = array();
while ($stmt->fetch()) {
$pics[] = $profilePic;
}
if ($profilePic === NULL) {
$default_profile_img = '<img class="welcome-pic" src="profile_images/default.jpg">';
} else {
$set_profile_img = '<img class="welcome-pic" src=" '.$profilePic.'">';
}
}
?>
<nav id="nav-panel">
<div id="nav-container">
<div id="welcome">
<?php echo $default_profile_img;
echo $set_profile_img; ?>
EDIT:profilepicが定義されますどのように
:
$sql = "
SELECT *
FROM profile_img
WHERE user_id = ?
ORDER BY id DESC LIMIT 1
";
if ($stmt = $con->prepare($sql)) {
$stmt->bind_param("s", $user_id);
$stmt->execute();
if (!$stmt->errno) {
// Handle error here
}
$stmt->bind_result($id, $user_id, $profilePic);
$ profilePicはどのように定義されますか?なぜ2つの異なるvarsをプロファイル画像に使用し、どちらが定義されているかにかかわらず、両方を出力しますか?両方とも同時に存在することはできないので、1つの変数を持つべきです。あなたはプロフィール写真を持っているか、そうではありません。 '$ pic = 'x' else {$ pic = 'y'} echo $ pic;' –
これを扱う方法はたくさんあります。 1) '$ default_profile_img'の名前を' $ set_profile_img'に変更するだけです。 2)代入の前に両方の変数を空の値で初期化することができます。 3)出力する前に再確認することができます: 'echo isset($ set_profile_img)? $ set_profile_img: ''; ' –
@MarcB私は、$ profilepicが私の質問にどのように定義されるかを付け加えました。 – Paul