Re: displaying image from MySQL DB using HTML/PHP
| From: | Jim Lucas | Date: | Wed, 14 Mar 2007 02:07:48 +0000 |
| Subject: | Re: displaying image from MySQL DB using HTML/PHP | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-250510@lists.php.net to get a copy of this message | ||
Bruce Gilbert wrote:
I am having some difficulty getting an image to display on a php that I have added to MySQL DB. Here is what I have tried so far.... in the MySQL DB I have a table called image_holder and the fields are id,mimename,filecontents...filecontents field is set to a type of blob using PHPMyAdmin and I have uploaded the image in MySQL. In the PHP code I have: [php] <?php $dbhost = 'hostaddress'; $dbuser = 'username'; $dbpass = 'password; $dbcnx = @mysql_connect($dbhost,$dbuser,$dbpass); if (!$dbcnx) { echo( "connection to database server failed!"); exit(); } if (! @mysql_select_db("image_holder") ) { echo( "Image Database Not Available!" ); exit(); } DON'T USE REQUESTonly use it from where you expect it to be, in this case, $_GET
$img = $_REQUEST["img"]; I see you calling a table called images not image_holder as stated previously.
$result = @mysql_query("SELECT * FROM images WHERE id=" . $img . ""); if (!$result) { echo("Error performing query: " . mysql_error() . ""); exit(); }you don't need a while loop here, get rid of it.
while ( $row = @mysql_fetch_array($result) ) { $imgid = $row["id"]; $encodeddata = $row["mimetype"]; $title = $row['filecontents']; } here is the end, but I see no echoing headers or of the data????you need to spit out headers for the given type of image and then echo the data and then exit. $result = @mysql_query("SELECT * FROM images WHERE id=" . $img . ""); if (!$result) { echo("Error performing query: " . mysql_error() . ""); exit(); } if ( ( $row = @mysql_fetch_array($result) ) === FALSE ) { header("Content-Type: {$row['mimetype']}"); echo $row['filecontents']; exit(); }
?> and in the HTML code <center><img src="image.php?img=1" width="200" border="1" alt=""></center> I am probably way off base, so need some help!