Solved

Retrieving Images from a image name referenced in a database

Posted on 2013-12-27
9
252 Views
Last Modified: 2013-12-27
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

0
Comment
Question by:wchirnside
  • 5
  • 3
9 Comments
 
LVL 108

Expert Comment

by:Ray Paseur
ID: 39742818
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.
0
 
LVL 34

Assisted Solution

by:gr8gonzo
gr8gonzo earned 250 total points
ID: 39742833
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)
0
 

Author Comment

by:wchirnside
ID: 39742918
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
0
 
LVL 108

Expert Comment

by:Ray Paseur
ID: 39742921
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.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 108

Accepted Solution

by:
Ray Paseur earned 250 total points
ID: 39742944
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
0
 

Author Comment

by:wchirnside
ID: 39742963
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
0
 
LVL 108

Expert Comment

by:Ray Paseur
ID: 39742992
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.
0
 

Author Comment

by:wchirnside
ID: 39743033
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.
0
 
LVL 108

Expert Comment

by:Ray Paseur
ID: 39743037
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
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Consider the following scenario: You are working on a website and make something great - something that lets the server work with information submitted by your users. This could be anything, from a simple guestbook to a e-Money solution. But what…
Part of the Global Positioning System A geocode (https://developers.google.com/maps/documentation/geocoding/) is the major subset of a GPS coordinate (http://en.wikipedia.org/wiki/Global_Positioning_System), the other parts being the altitude and t…
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now