1

I have a MySQL database

I have a column id called "picture"

The picture column stores file names

The files corresponding to the file names are stored on my htdocs root directory

I would like to display the image data stored in these file names.

The code below (finally) works buy my question is .... Is this the most efficient way to display the image. When I say efficient I mean is it the quickest way to code this..

require_once("database_connect.php");

$getinfo = mysql_query( "SELECT picture FROM historylist ORDER BY date_played LIMIT 0, 1");  // i think this gets the information
$answer = mysql_fetch_array($getinfo); // i think this stores the information into the variable $answer

{
    echo "<img src=\"/{$answer['picture']}\" alt=\"\" />";
}
Luc M
  • 16,630
  • 26
  • 74
  • 89
Justin
  • 135
  • 2
  • 12
  • 1
    Welcome to SO. Unfortunately this is not a code review site so this question is likely to be closed. Please see the [FAQ]. – vascowhite May 25 '13 at 10:18
  • 1
    Also, [Please, don't use `mysql_*` functions in new code](http://stackoverflow.com/q/12859942). They are no longer maintained and the deprecation process has begun, see the [red box](http://php.net/mysql-connect). Learn about [prepared statements](http://en.wikipedia.org/wiki/Prepared_statement) instead, and use [PDO](http://php.net/pdo) or [MySQLi](http://php.net/mysqli); [this article](http://php.net/mysqlinfo.api.choosing) will help you decide which. If you choose PDO, [here is a good tutorial](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). – vascowhite May 25 '13 at 10:19
  • 1
    Thanks for you comments.. Sorry, i thought i was asking a question based upon efficiency of my code.. i will look into "prepared statements." – Justin May 25 '13 at 10:22
  • Yes, you are asking about the efficiency of your code, but that is a review of working code which is OT for SO. codereview.stackexchange.com may be a better place, but make sure you read their [FAQ](http://codereview.stackexchange.com/faq) first. – vascowhite May 25 '13 at 10:27
  • fair play.. sorry .. newbies not reading FAQ's must waste a lot of peoples time.. :( – Justin May 25 '13 at 10:28

1 Answers1

0

If there is only one picture connected to one DB row, I wouldn't bother with storing it at all, but rather name it after row's id. But if there are many, it won't work.

Nevertheless, the way of getting data is indeed inefficient, as well as echoing HTML out

What have it have to be:

<?php
require_once("bootstrap.php");
$pic = $db->getOne("SELECT picture FROM historylist ORDER BY date_played LIMIT 0, 1");
?>

<img src="<?=$pic?>" alt="" />

by closing PHP tag and writing HTML as is you can get rid of all these annoying \\\s which will make your writing indeed efficient.
To get rid of all repetitive DB handling code is also a good idea.

Your Common Sense
  • 156,878
  • 40
  • 214
  • 345