2016-10-26 8 views
1

Ich zeige das Profilbild eines Benutzers an. Ich habe eine if-Anweisung erstellt, um ein Standardprofilbild zu posten, wenn ein Benutzer seine eigenen nicht aktualisiert hat. Das alles funktioniert, aber was ich nicht herausfinden kann, ist, wie man für jedes Echo ein Echo macht oder ruft, ohne einen Fehler für den nicht gesetzten zu bekommen. Wenn sie beispielsweise ein Profilbild haben, schreibt es gut, aber dann bekomme ich einen Fehler, dass die andere Variable nicht definiert ist und umgekehrt.Einstellen des Ergebnisses einer if-Anweisung

Wie soll ich dies fordern oder welche Änderungen muss ich in meinem Code vornehmen?

 $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:

Wie profilepic definiert wird:

$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); 
+1

wo/wie wird $ profilePic definiert? und warum ZWEI verschiedene VARs für das Profilbild verwenden und dann BOTH ausgeben, unabhängig davon, welches definiert wurde? Sie sollten eine Variable haben, da beide nicht gleichzeitig existieren können. Sie haben entweder ein Profilbild, oder Sie nicht. 'if() {$ pic = 'x'} else {$ pic = 'y'} echo $ pic;' –

+0

viele verschiedene Möglichkeiten, damit umzugehen. 1) Sie könnten einfach '$ default_profile_img' in' $ set_profile_img' umbenennen. 2) Sie könnten beide Variablen vor der Zuweisung mit leeren Werten initialisieren. 3) Du könntest es vor der Ausgabe überprüfen: 'echo isset ($ set_profile_img)? $ set_profile_img: ''; ' –

+0

@MarcB Ich habe hinzugefügt, wie $ profilepic zu meiner Frage definiert wird. – Paul

Antwort

1

Fügen Sie einfach $ default_profile_img = null; und $ set_profile_img = null; an der Spitze des PHP-Codes.

$default_profile_img = null; 
$set_profile_img = null; 
$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; ?> 
0

diesen Code Versuchen. Es besteht keine Notwendigkeit, zwei verschiedene Variablen zu verwenden. Auf diese Weise erhalten Sie keine Warnung.

$pics = array(); 
while ($stmt->fetch()) { 
    $pics[] = $profilePic; 
} 
if (!isset($profilePic) OR $profilePic === NULL) { 
    $profile_img = '<img class="welcome-pic" src="profile_images/default.jpg">'; 
} else { 
    $profile_img = '<img class="welcome-pic" src=" '.$profilePic.'">'; 
} 
} 
?> 
<nav id="nav-panel"> 
    <div id="nav-container"> 
     <div id="welcome"> 
      <?php echo $profile_img; ?> 
1

Sie müssen nur die Variablen, bevor die if..else Aussagen initialisieren, damit sie nicht unbestimmt sein wird, wenn Sie versuchen, beide Echo.

$profile_img = ""; 
$default_profile_img = ""; 

if (... 
Verwandte Themen