2009-01-30 5 views
1

Salut, fondamentalement, j'essaie de créer une simple déclaration IF qui montre une image par défaut si elle n'a pas été entré dans ma base de données. J'utilise le serveur pour stocker mon image et une base de données pour stocker le nom du fichier, donc je peux obtenir l'image à afficher si elle a un nom de fichier dans la db mais je veux que l'instruction If indique si l'enregistrement est vide image. J'ai un peu de code ici que j'ai essayé mais ça ne fonctionne pas? J'ai essayé quelques autres façons de le faire mais ils ne fonctionnaient pas non plus.PHP Si autre déclaration qu'un enregistrement de base de données est vide, il affichera une image par défaut

Cheers.

jusqu'à présent code:

//Retrieves data from MySQL 
$data = mysql_query("SELECT * FROM db*****") or die(mysql_error()); 

//Puts it into an array 
while($info = mysql_fetch_array($data)) 
{ 
?> 

     <div class="member"> 
     <div class="imageSection"> 
     <? 

     if($info['photo'] == '') 
     {echo "<img class=\"memberImage\" src=images/default.jpg>";} 
      else {echo "<img class=\"memberImage\" src=images/".$info['photo'] .">";} 
     ?> 
     </div> 
     <div class="memberInfo"> 
<? Echo "<p><strong>Name: ".$info['nameMember'] . "</strong></p>"; 
Echo "<p>Position: ".$info['bandMember'] . " </p>"; 
Echo "<p>About Band Member ".$info['nameMember'] .":".$info['aboutMember'] . "</p>"; 
Echo "<p>Other Bands: ".$info['otherBands'] . " </p><br/></div></div><br class=\"clearBoth\"/>"; 

} 
?> 
+0

Quelle partie ne fonctionne pas? On dirait que vous voulez des guillemets autour de votre attribut img src, par exemple. src = "filename" mais à part ça ça a l'air correct. –

+0

Avez-vous essayé de print_r ($ info) pour voir si la valeur est en fait '' et pas autre chose? – feihtthief

Répondre

4

Qu'en est-il d'un simple ternary:

$photo = ($info['photo'] == null) ? "default.jpg" : $info['photo']; 
echo "<img class=\"memberImage\" src=images/". $photo .">"; 
+0

Je l'ai fatigué mais il n'a pas affiché l'image par défaut. Il affiche les images téléchargées, c'est le même problème que j'avais avec le code que j'ai mis en place ci-dessus. Merci quand même, as-tu d'autres idées? –

1

Etes-vous sûr de la valeur par défaut de la colonne est réglé sur "". il pourrait être réglé à null? Bien que idk si cela le ferait ne pas fonctionner.

ajoutez le code suivant avant l'instruction if

echo $info['photo']; 

Une autre suggestion serait de couper les données avant de le comparer.

1

Vous pouvez utiliser file_exists, qui fonctionnera même si l'image est supprimée manuellement.

$photo = 'images/'. $info['photo']; 
if (file_exists($photo) == FALSE) 
{ 
    $photo = 'images/default.jpg'; 
} 
echo '<img class="memberImage" src="'. $photo .'"/>'; 
+0

+1 Bon appel. Je le ferais de cette façon indépendamment des problèmes de base de données. – da5id

0

empty() peut attraper renvoie true si le paramètre est '', NULL, false, '0', 0 le genre de conditions que vous êtes après, alors essayez

if(empty($info['photo'])) 
{ 
    .... 
} 

vide(), ou un tableau vide.

Questions connexes