Jump to content

[SOLVED] When image is missing, how to display my own icon instead of 'red x' ?


Recommended Posts

Here is my line.. if the image does not exist, I'm getting the standard missing icon on my webpage.

Is there a way to customize/change the missing image icon when the image isn't there?

 

echo "<img src='" . $imagesFolder . $row['companyid'] . ".jpg' /></p>";

 

Try this:

 

<?php

$file = $imagesFolder . $row['companyid'] . '.jpg';

if (file_exists($file)){
   echo "<img src='" . $imagesFolder . $row['companyid'] . ".jpg' /></p>";
} else {
   echo echo "<img src='icon.jpg' /></p>";
}

?>

Ok - its hairy.. and I had changed my field name in my original post to make it easier for people to understand:

 

<?php
$username = "username";
$password = "pswd";
$hostname = "localhost"; 

$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");

$selected = mysql_select_db("lodges",$dbhandle)
or die("Could not select lodges");

$id = $_GET['id'];

$query = mysql_query("SELECT a.strLodgeName, a.intLodgeNumber, a.intDistrictID, a.strLodgeWEB, a.strLodgeCounty, a.dtChartered, a.strLodgeMeetingPlace, a.strLodgeLocationCity, a.strLodgeLocationState, a.strLodgeLocationZip, a.strLodgeEmail, a.strLodgePhone, a.strLodgeFax, a.strDrivingDirectons, a.dtMeetingTime, a.strMeetingCodes, a.dtMealTime, a.strFloorSchool, a.strLodgeNews, a.strLodgePhotoPathAndName, b.strOfficerTitle, b.strFirstName, b.strLastName, b.BusinessPhone, b.PersEmail FROM tblLodges a LEFT JOIN tblOfficers b ON a.lngLodgeID = b.lngLodgeID WHERE a.intLodgeNumber=$id GROUP BY a.strLodgeName LIMIT 50")or die(mysql_error());
while ($row = @mysql_fetch_array($query))

{
$variable1=$row["strLodgeName"];
$variable2=$row["intLodgeNumber"];
$variable3=$row["intDistrictID"];
$variable4=$row["strLodgeWEB"];
$variable5=$row["strLodgeCounty"];
$variable6=$row["dtChartered"];
$variable7=$row["strLodgeMeetingPlace"];
$variable8=$row["strLodgeLocationCity"];
$variable9=$row["strLodgeLocationState"];
$variable10=$row["strLodgeLocationZip"];
$variable12=$row["strLodgeEmail"];
$variable13=$row["strLodgePhone"];
$variable14=$row["strLodgeFax"];
$variable15=$row["strDrivingDirectons"];
$variable16=$row["dtMeetingTime"];
$variable17=$row["dtMealTime"];
$variable18=$row["strFloorSchool"];
$variable19=$row["strLodgeNews"];
$variable20=$row["strLodgePhotoPathAndName"];
$variable21=$row["strMeetingCodes"];
$imagesFolder = '/lodgeimages/';

//table layout for results

echo "<center>\n";
echo "<p><H3>LODGE: $variable1</H4></p>";

//image to be displayed
echo "<img src='" . $imagesFolder . $row['intLodgeNumber'] . ".jpg' /></p>";

echo "<p><b>Lodge Number:</b> $variable2</p>";
echo "<p><b>District Name:</b> $variable3</p>";
echo "<a href=\"$variable4\">Click Here To Go To The Lodge Website</a>";
echo "<p><b>Lodge County:</b> $variable5</p>";
echo "<p><b>Lodge Chartered On:</b> $variable6</p>";
echo "<p><b>Lodge Address: </b> $variable7</p>";
echo "<p>$variable8, $variable9 $variable10</p>";
echo "<a href=\"mailto:$variable12\">Click Here To Email The Lodge</a>";
echo "<p><b>Lodge Phone Number: </b> $variable13</p>";
echo "<p><b>Lodge FAX Number: </b> $variable14</p>";
echo "<p><b>Lodge Driving Directions:</b><a href='http://maps.google.com/maps?saddr=&daddr=".$variable7.", ".$variable8.", ".$variable9."' target='_blank'>Link</a></p>";

echo "<p<b>Lodge Meetings:</b> $variable21</p>";
echo "<p><b>Lodge Meeting Time:</b> $variable16</p>";
echo "<p><b>Lodge Meal Time:</b> $variable17</p>";
echo "<p><b>Lodge Floor School:</b> $variable18</p>";
echo "<p><b>Lodge News:</b> $variable19</p>";

echo "</center>\n";
}
?>          
          <hr>
          <p>
            <?php
//query details table begins
$query = mysql_query("SELECT tblLodges.strLodgeName, tblLodges.intLodgeNumber, tblLodges.intDistrictID, tblLodges.strLodgeLocationCity, tblLodges.strLodgeLocationZip, tblLodges.strLodgeCounty, tblOfficers.lngLodgeID, tblOfficers.strOfficerTitle, tblOfficers.strFirstName, tblOfficers.strLastName, tblOfficers.BusinessPhone, tblOfficers.PersEmail FROM tblLodges LEFT JOIN tblOfficers ON tblLodges.lngLodgeID = tblOfficers.lngLodgeID WHERE tblLodges.intLodgeNumber=$id GROUP BY tblOfficers.lngOfficerTitleID LIMIT 0, 50")or die(mysql_error());


echo "<center>\n";
echo "<H2>Roster of Lodge Officers</H2>\n";
echo "<table border='1'>
   <tr>
<th>Lodge Number</th>
<th>Officer Title</th>
<th>Officer First</th>
<th>Officer Last</th>
<th>Officer Email</th>
<th>Officer Phone</th>

</tr>";

if (mysql_num_rows($query)) {
    while ($row = mysql_fetch_array($query)) {
        $variable1=$row["intLodgeNumber"];
        $variable2=$row["strOfficerTitle"];
        $variable3=$row["strFirstName"];
        $variable4=$row["strLastName"];
        $variable5=$row["PersEmail"];
        $variable6=$row["BusinessPhone"];
        
        //table layout for results
        
        print("<tr>");
        echo "<tr align=\"center\" bgcolor=\"#EFEFEF\">\n";
        echo "<td class=\"td_id\">$variable1</td>\n";
        echo "<td class=\"td_id\">$variable2</td>\n";
        echo "<td class=\"td_id\">$variable3</td>\n";
        echo "<td class=\"td_id\">$variable4</td>\n";
        echo "<td class=\"td_id\">$variable5</td>\n";
        echo "<td class=\"td_id\">$variable6</td>\n";
        print("</tr>");
    }
}
?>

Try this:

<?PHP

$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");

$selected = mysql_select_db("lodges",$dbhandle)
or die("Could not select lodges");

$id = $_GET['id'];

$query = mysql_query("SELECT a.strLodgeName, a.intLodgeNumber, a.intDistrictID, a.strLodgeWEB, a.strLodgeCounty, a.dtChartered, a.strLodgeMeetingPlace, a.strLodgeLocationCity, a.strLodgeLocationState, a.strLodgeLocationZip, a.strLodgeEmail, a.strLodgePhone, a.strLodgeFax, a.strDrivingDirectons, a.dtMeetingTime, a.strMeetingCodes, a.dtMealTime, a.strFloorSchool, a.strLodgeNews, a.strLodgePhotoPathAndName, b.strOfficerTitle, b.strFirstName, b.strLastName, b.BusinessPhone, b.PersEmail FROM tblLodges a LEFT JOIN tblOfficers b ON a.lngLodgeID = b.lngLodgeID WHERE a.intLodgeNumber=$id GROUP BY a.strLodgeName LIMIT 50")or die(mysql_error());
while ($row = @mysql_fetch_array($query))

{
$variable1=$row["strLodgeName"];
$variable2=$row["intLodgeNumber"];
$variable3=$row["intDistrictID"];
$variable4=$row["strLodgeWEB"];
$variable5=$row["strLodgeCounty"];
$variable6=$row["dtChartered"];
$variable7=$row["strLodgeMeetingPlace"];
$variable8=$row["strLodgeLocationCity"];
$variable9=$row["strLodgeLocationState"];
$variable10=$row["strLodgeLocationZip"];
$variable12=$row["strLodgeEmail"];
$variable13=$row["strLodgePhone"];
$variable14=$row["strLodgeFax"];
$variable15=$row["strDrivingDirectons"];
$variable16=$row["dtMeetingTime"];
$variable17=$row["dtMealTime"];
$variable18=$row["strFloorSchool"];
$variable19=$row["strLodgeNews"];
$variable20=$row["strLodgePhotoPathAndName"];
$variable21=$row["strMeetingCodes"];
$imagesFolder = '/lodgeimages/';

//table layout for results

echo "<center>\n";
echo "<p><H3>LODGE: $variable1</H4></p>";

//image to be displayed
$file = $imagesFolder . $row['companyid'] . '.jpg';

if (file_exists($file)){
   echo "<img src='" . $imagesFolder . $row['companyid'] . ".jpg' /></p>";
} else {
   echo "<img src='icon.jpg' /></p>";
}

echo "<p><b>Lodge Number:</b> $variable2</p>";
echo "<p><b>District Name:</b> $variable3</p>";
echo "<a href=\"$variable4\">Click Here To Go To The Lodge Website</a>";
echo "<p><b>Lodge County:</b> $variable5</p>";
echo "<p><b>Lodge Chartered On:</b> $variable6</p>";
echo "<p><b>Lodge Address: </b> $variable7</p>";
echo "<p>$variable8, $variable9 $variable10</p>";
echo "<a href=\"mailto:$variable12\">Click Here To Email The Lodge</a>";
echo "<p><b>Lodge Phone Number: </b> $variable13</p>";
echo "<p><b>Lodge FAX Number: </b> $variable14</p>";
echo "<p><b>Lodge Driving Directions:</b><a href='http://maps.google.com/maps?saddr=&daddr=".$variable7.", ".$variable8.", ".$variable9."' target='_blank'>Link</a></p>";

echo "<p<b>Lodge Meetings:</b> $variable21</p>";
echo "<p><b>Lodge Meeting Time:</b> $variable16</p>";
echo "<p><b>Lodge Meal Time:</b> $variable17</p>";
echo "<p><b>Lodge Floor School:</b> $variable18</p>";
echo "<p><b>Lodge News:</b> $variable19</p>";

echo "</center>\n";
}
?>          
          <hr>
          <p>
            <?php
//query details table begins
$query = mysql_query("SELECT tblLodges.strLodgeName, tblLodges.intLodgeNumber, tblLodges.intDistrictID, tblLodges.strLodgeLocationCity, tblLodges.strLodgeLocationZip, tblLodges.strLodgeCounty, tblOfficers.lngLodgeID, tblOfficers.strOfficerTitle, tblOfficers.strFirstName, tblOfficers.strLastName, tblOfficers.BusinessPhone, tblOfficers.PersEmail FROM tblLodges LEFT JOIN tblOfficers ON tblLodges.lngLodgeID = tblOfficers.lngLodgeID WHERE tblLodges.intLodgeNumber=$id GROUP BY tblOfficers.lngOfficerTitleID LIMIT 0, 50")or die(mysql_error());


echo "<center>\n";
echo "<H2>Roster of Lodge Officers</H2>\n";
echo "<table border='1'>
   <tr>
<th>Lodge Number</th>
<th>Officer Title</th>
<th>Officer First</th>
<th>Officer Last</th>
<th>Officer Email</th>
<th>Officer Phone</th>

</tr>";

if (mysql_num_rows($query)) {
    while ($row = mysql_fetch_array($query)) {
        $variable1=$row["intLodgeNumber"];
        $variable2=$row["strOfficerTitle"];
        $variable3=$row["strFirstName"];
        $variable4=$row["strLastName"];
        $variable5=$row["PersEmail"];
        $variable6=$row["BusinessPhone"];
        
        //table layout for results
        
        print("<tr>");
        echo "<tr align=\"center\" bgcolor=\"#EFEFEF\">\n";
        echo "<td class=\"td_id\">$variable1</td>\n";
        echo "<td class=\"td_id\">$variable2</td>\n";
        echo "<td class=\"td_id\">$variable3</td>\n";
        echo "<td class=\"td_id\">$variable4</td>\n";
        echo "<td class=\"td_id\">$variable5</td>\n";
        echo "<td class=\"td_id\">$variable6</td>\n";
        print("</tr>");
    }
}

?>

 

It was to echo's in the else part..

I advise the file_exists function.

 

<?php

$filename = 'images/example.jpg';

if ( file_exists($filename) )
{
     $image = $filename;
}
else
{
     $image = 'images/noimage.jpg';
}

echo '<img src="' . $image . '" alt="" />';

?>

Try to echo $file...

 

Check if the path is right..

 

can you explain this more?

 

Like this

 

<?php

$file = $imagesFolder . $row['companyid'] . '.jpg';
echo $file;

 

That will tell you if your variable is coming out as expected.

ahhh!

Yes, in that particular case, it is displaying just the path but I've also tested

 

echo "<img src='" . $imagesFolder . $row['companyID'] . ".jpg' /></p>";

 

and it works fine

 

So the issue seems to be my personalized 'image not available' icon shows up when in fact there is an image available..

Hope this makes sense.

thanks

ahhh!

Yes, in that particular case, it is displaying just the path but I've also tested

 

echo "<img src='" . $imagesFolder . $row['companyID'] . ".jpg' /></p>";

 

and it works fine

 

So the issue seems to be my personalized 'image not available' icon shows up when in fact there is an image available..

Hope this makes sense.

thanks

$row['companyID'] isn't same as $row['companyid']

It's not 'companyID' or 'companyid'- I just used that to explain myself.. so that's not the issue.

Here is the path:

 

 

$file = $imagesFolder . $row['intLodgeNumber'] . '.jpg';

 

if (file_exists($file)){

  echo "<img src='" . $imagesFolder . $row['intLodgeNumber'] . ".jpg' /></p>";

} else {

  echo "<img src='/Images/footerbar.GIF' /></p>";

}

 

Trying to troubleshoot all of the posted suggestions... poco, was the 'echo echo' in your last line a mistake?

 

Try this:

 

<?php

$file = $imagesFolder . $row['companyid'] . '.jpg';

if (file_exists($file)){
   echo "<img src='" . $imagesFolder . $row['companyid'] . ".jpg' /></p>";
} else {
   echo echo "<img src='icon.jpg' /></p>";
}

?>

I took out the extra echo and still have the problem.

Just so you guys know the line of code I am trying to do this with goes as follows:

 

Photos are stored in an 'Images' file on my server. 

Let's just say each photo is named 'companynameID.jpg' (really called 'intLodgeNumber') in that folder.

In my database there is a 'companynameID' field.

So my code looks for the ID in the database and matches it to the image in the folder.

 

Hence:

echo "<img src='" . $imagesFolder . $row['intLodgeNumber'] . ".jpg' /></p>";

 

So I'm trying to make the entire line completely disappear when there is no image in the Images folder.

It may be this is impossible to do..?

 

I guess another work around could be I can make an image that says "Photo not available" and call it na.jpg

and whenever the photo is missing it would replace it with my na.jpg...

 

I just have NO IDEA AT ALL on how to do that....

try this

<?PHP

$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");

$selected = mysql_select_db("lodges",$dbhandle)
or die("Could not select lodges");

$id = $_GET['id'];

$query = mysql_query("SELECT a.strLodgeName, a.intLodgeNumber, a.intDistrictID, a.strLodgeWEB, a.strLodgeCounty, a.dtChartered, a.strLodgeMeetingPlace, a.strLodgeLocationCity, a.strLodgeLocationState, a.strLodgeLocationZip, a.strLodgeEmail, a.strLodgePhone, a.strLodgeFax, a.strDrivingDirectons, a.dtMeetingTime, a.strMeetingCodes, a.dtMealTime, a.strFloorSchool, a.strLodgeNews, a.strLodgePhotoPathAndName, b.strOfficerTitle, b.strFirstName, b.strLastName, b.BusinessPhone, b.PersEmail FROM tblLodges a LEFT JOIN tblOfficers b ON a.lngLodgeID = b.lngLodgeID WHERE a.intLodgeNumber=$id GROUP BY a.strLodgeName LIMIT 50")or die(mysql_error());
while ($row = @mysql_fetch_array($query))

{
$variable1=$row["strLodgeName"];
$variable2=$row["intLodgeNumber"];
$variable3=$row["intDistrictID"];
$variable4=$row["strLodgeWEB"];
$variable5=$row["strLodgeCounty"];
$variable6=$row["dtChartered"];
$variable7=$row["strLodgeMeetingPlace"];
$variable8=$row["strLodgeLocationCity"];
$variable9=$row["strLodgeLocationState"];
$variable10=$row["strLodgeLocationZip"];
$variable12=$row["strLodgeEmail"];
$variable13=$row["strLodgePhone"];
$variable14=$row["strLodgeFax"];
$variable15=$row["strDrivingDirectons"];
$variable16=$row["dtMeetingTime"];
$variable17=$row["dtMealTime"];
$variable18=$row["strFloorSchool"];
$variable19=$row["strLodgeNews"];
$variable20=$row["strLodgePhotoPathAndName"];
$variable21=$row["strMeetingCodes"];
$imagesFolder = '/lodgeimages/';

//table layout for results

echo "<center>\n";
echo "<p><H3>LODGE: $variable1</H4></p>";

//image to be displayed
$file = $imagesFolder . $row['companyid'] . '.jpg';

if (file_exists($file)){
   echo "<img src='" . $imagesFolder . $row['companyid'] . ".jpg' /></p>";
} else {
   echo "i have no image ";
}

echo "<p><b>Lodge Number:</b> $variable2</p>";
echo "<p><b>District Name:</b> $variable3</p>";
echo "<a href=\"$variable4\">Click Here To Go To The Lodge Website</a>";
echo "<p><b>Lodge County:</b> $variable5</p>";
echo "<p><b>Lodge Chartered On:</b> $variable6</p>";
echo "<p><b>Lodge Address: </b> $variable7</p>";
echo "<p>$variable8, $variable9 $variable10</p>";
echo "<a href=\"mailto:$variable12\">Click Here To Email The Lodge</a>";
echo "<p><b>Lodge Phone Number: </b> $variable13</p>";
echo "<p><b>Lodge FAX Number: </b> $variable14</p>";
echo "<p><b>Lodge Driving Directions:</b><a href='http://maps.google.com/maps?saddr=&daddr=".$variable7.", ".$variable8.", ".$variable9."' target='_blank'>Link</a></p>";

echo "<p<b>Lodge Meetings:</b> $variable21</p>";
echo "<p><b>Lodge Meeting Time:</b> $variable16</p>";
echo "<p><b>Lodge Meal Time:</b> $variable17</p>";
echo "<p><b>Lodge Floor School:</b> $variable18</p>";
echo "<p><b>Lodge News:</b> $variable19</p>";

echo "</center>\n";
}
?>          
          <hr>
          <p>
            <?php
//query details table begins
$query = mysql_query("SELECT tblLodges.strLodgeName, tblLodges.intLodgeNumber, tblLodges.intDistrictID, tblLodges.strLodgeLocationCity, tblLodges.strLodgeLocationZip, tblLodges.strLodgeCounty, tblOfficers.lngLodgeID, tblOfficers.strOfficerTitle, tblOfficers.strFirstName, tblOfficers.strLastName, tblOfficers.BusinessPhone, tblOfficers.PersEmail FROM tblLodges LEFT JOIN tblOfficers ON tblLodges.lngLodgeID = tblOfficers.lngLodgeID WHERE tblLodges.intLodgeNumber=$id GROUP BY tblOfficers.lngOfficerTitleID LIMIT 0, 50")or die(mysql_error());


echo "<center>\n";
echo "<H2>Roster of Lodge Officers</H2>\n";
echo "<table border='1'>
   <tr>
<th>Lodge Number</th>
<th>Officer Title</th>
<th>Officer First</th>
<th>Officer Last</th>
<th>Officer Email</th>
<th>Officer Phone</th>

</tr>";

if (mysql_num_rows($query)) {
    while ($row = mysql_fetch_array($query)) {
        $variable1=$row["intLodgeNumber"];
        $variable2=$row["strOfficerTitle"];
        $variable3=$row["strFirstName"];
        $variable4=$row["strLastName"];
        $variable5=$row["PersEmail"];
        $variable6=$row["BusinessPhone"];
        
        //table layout for results
        
        print("<tr>");
        echo "<tr align=\"center\" bgcolor=\"#EFEFEF\">\n";
        echo "<td class=\"td_id\">$variable1</td>\n";
        echo "<td class=\"td_id\">$variable2</td>\n";
        echo "<td class=\"td_id\">$variable3</td>\n";
        echo "<td class=\"td_id\">$variable4</td>\n";
        echo "<td class=\"td_id\">$variable5</td>\n";
        echo "<td class=\"td_id\">$variable6</td>\n";
        print("</tr>");
    }
}

?>

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.