Retrieving Images from a image name referenced in a database

I have image names stored in a database and the actual images stored in a folder. I am trying to rework my code so that it will print the actual image which is stored in a folder called uploads.

$q = "SELECT id, productimage FROM proDescript WHERE id=('13')";

$r = mysqli_query($connect, $q);

if (mysqli_num_rows($r) > 0) {

while ($row = mysqli_fetch_array($r, MYSQLI_NUM)) {
	
		<img src="uploads/ <?php echo "<p><h2>Hello $row[1]!</p>"?>"/> ;

Open in new window

Wanda MarstonCreative DirectorAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ray PaseurCommented:
Please post the CREATE TABLE statement for the proDescript table and a sample of the data that is contained in columns id and productimage.  Please post a visual of the contents of the "uploads" directory.  Once we see how these things relate, we can help you get the <img> tags right.
gr8gonzoConsultantCommented:
It looks like you're putting HTML inside your PHP blocks:


while ($row = mysqli_fetch_array($r, MYSQLI_NUM)) {
		<img src="uploads/ <?php echo "<p><h2>Hello $row[1]!</p>"?>"/> ;

Open in new window


I would expect to see something like this:

...
while ($row = mysqli_fetch_assoc($r)) {
?>
		<img src="uploads/<?php echo $row["productimage"]; ?>">
<?php
}
?>

Open in new window


Also note that I changed the record retrieval to mysqli_fetch_assoc($r)
Wanda MarstonCreative DirectorAuthor Commented:
Thanks for your quick reply

Yes, I am putting HTML with my php which I realize is most likely incorrect.
 
Please note that the following code will bring up the name of the file that is located in the database.
$q = "SELECT id, productimage FROM proDescript WHERE id=('13')";

$r = mysqli_query($connect, $q);

if (mysqli_num_rows($r) > 0) {

while ($row = mysqli_fetch_array($r, MYSQLI_NUM)) {
	
	 echo "<p><h2>Hello $row[1]!</p>";

Open in new window


Sorry but what exactly is meant by create table statement.
uploads.png
Table.png
Starting with Angular 5

Learn the essential features and functions of the popular JavaScript framework for building mobile, desktop and web applications.

Ray PaseurCommented:
This article shows how to detect errors in the query, including how to visualize both the failing query and the exact error message.  You might want to do that with all of your queries.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/PHP_Databases/A_11177-PHP-MySQL-Deprecated-as-of-PHP-5-5-0.html

$q = "SELECT id, productimage FROM proDescript WHERE id=('13')";
$r = mysqli_query($connect, $q);
if (!$r) { /* QUERY FAILED */ }

Open in new window

When the query fails, you want to print out the fully-resolved query string from the variable $q along with the contents of mysqli_errno() and mysqli_error().  PHP has the trigger_error() function to help with this.
Ray PaseurCommented:
MySQL has the SHOW CREATE TABLE query.  It will give you the information used to create the table.

This is a bit of a guess, but I think you might be able to do something like this.
$q = "SELECT id, productimage FROM proDescript WHERE id=('13')";
$r = mysqli_query($connect, $q);
if (mysqli_num_rows($r) > 0) 
{
    while ($row = mysqli_fetch_object($r))
    {
        echo '<img src="uploads/' . $row->productimage . '" />' . PHP_EOL;
    }
}

Open in new window

If you want to get a foundation in how PHP works, this article will lead you to some good learning resources.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_11769-And-by-the-way-I-am-new-to-PHP.html

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Wanda MarstonCreative DirectorAuthor Commented:
CREATE TABLE `proDescript` (
 `id` smallint(6) NOT NULL AUTO_INCREMENT,
 `users_id` mediumint(20) NOT NULL,
 `title` varchar(40) CHARACTER SET utf8 NOT NULL,
 `currency` tinyint(4) NOT NULL,
 `amount` varchar(30) CHARACTER SET utf8 NOT NULL,
 `location` varchar(40) CHARACTER SET utf8 NOT NULL,
 `description` varchar(300) CHARACTER SET utf8 NOT NULL,
 `productimage` varchar(100) CHARACTER SET utf8 NOT NULL,
 `active` tinytext CHARACTER SET utf8 NOT NULL,
 `date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
Ray PaseurCommented:
Thanks.  I think you will find the "fetch_object()" functions to be more useful over time.  There is less fiddly punctuation involved.  Let us know how things turn out when you try the suggestions.  If you get error messages, please post those here along with the code and we'll try to help get you to a good solution.
Wanda MarstonCreative DirectorAuthor Commented:
Both suggestions worked just fine and I did a bit of experimentation as well. I will add the codes to my folder of working scripts.

I took a look at your article and feel that I am learning PHP from reading several of the books that were suggested. The first book I ever bought on this subject was Kevin Yank's "Build Your Own Database Drive Web Site Using PHP & MYSQL" and have since bought the updated version.

There is still lots to learn and I suppose it is never ending.
Ray PaseurCommented:
Yank is pretty good.  You're right -- it's never ending.
... add the codes to my folder of working scripts.
In my experience, the most valuable asset I have created is the library of teaching examples.  I hope your set of examples is as useful to you as mine has been to me!

Thanks for the points and thanks for using EE, ~Ray
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PHP

From novice to tech pro — start learning today.