2015-01-28 7 views
0

Я пытаюсь получить путь изображения из своей базы данных и отображать изображение с помощью HTML <img>.Как получить изображение из базы данных MySQL с помощью PHP

Я сохраняю путь изображения в базе данных mysql, но я не могу понять, что не так.

HTML:

<html> 

    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>image</title> 
    </head> 

    <body> 
     <img src="image_loading.php" width="100" height="100"> 
    </body> 

</html> 
<br /> 

PHP:

<?php 
$dbhost  = "localhost"; 
$dbusername = "root"; 
$dbpass  = ""; 
$dbname  = "m_beg"; 

$conn = mysqli_connect($dbhost, $dbusername, $dbpass, $dbname) or die(); 
$sql = "SELECT `image` FROM `music_table` where `id`=100"; 

$res = mysqli_query($conn, $sql); 
header("Location:image/jpg"); 

while ($row = mysqli_fetch_array($res)) { 
    echo $row["image"]; 
} 

?> 
+0

заголовок ("Location: изображение/JPG")? Почему не заголовок («Content-type: image/jpeg»)? –

+0

В любом случае ... заголовок с именем файла не будет работать. –

+0

Почему этот заголовок ?! Вы вызываете двоичные данные из своей БД? – techouse

ответ

0

Это просто все неправильно. Попробует загрузить изображение с именем 'image_loading.php'. php возвращает недопустимый заголовок.

Вместо этого используйте это, включив функцию php с вашим html-кодом, если это имеет смысл.

HTML

<html> 

    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>image</title> 
    </head> 

    <body> 
     <img src="<?php echo getfilename();?>" width="100" height="100"> 
    </body> 

</html> 
<br /> 

PHP

<?php 
function getfilename() 
{ 
    $dbhost  = "localhost"; 
    $dbusername = "root"; 
    $dbpass  = ""; 
    $dbname  = "m_beg"; 

    $conn = mysqli_connect($dbhost, $dbusername, $dbpass, $dbname) or die(); 
    $sql = "SELECT `image` FROM `music_table` where `id`=100"; 

    $res = mysqli_query($conn, $sql); 
    while ($row = mysqli_fetch_array($res)) { 
     return $row["image"]; 
    } 
    return "";//error no image found 
} 
?> 
+0

спасибо и так много. Ваш ответ очень полезен для меня. –

+0

Мое удовольствие Ajay. Однако, если вы найдете ответ полезным, все, что вам нужно сделать, это даст ему «голос». Если это правильный ответ, который помог вам решить вашу проблему, вы должны отметить ее как правильную (с отметкой по голосам), иначе она останется без ответа. –

0

Попробуйте, как это ..

while($row = mysqli_fetch_array($res)) 
     { 
      $title = $row["image"]; 

      echo "<img src=$title width='100' height='100'>"; 
     } 
+0

...... echo ""; –

+0

echo ""; для отображения изображения – next2u

0

Попробуйте относительный URL-путь, добавив косую черту в пути:

<img src="/image_loading.php" width="100" height="100"> 
0

Попробуйте этот код ..

<?php 
    $dbhost  = "localhost"; 
    $dbusername = "root"; 
    $dbpass  = ""; 
    $dbname  = "m_beg"; 

    $conn = mysqli_connect($dbhost, $dbusername, $dbpass, $dbname) or die(); 
    $sql = "SELECT `image` FROM `music_table` where `id`=100"; 

    $res = mysqli_query($conn, $sql); 
    header("Location:image/jpg"); 

    //change this from mysqli_fetch_array to mysqli_fetch_assoc 
    while ($row = mysqli_fetch_assoc($res)) { 
    $image=$row['image']; 
    echo "<img src='$image'>"; 
} 


?>