---
title: "Hjälp att skriva ut bild från musql via img tag"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/183350-hjälp-att-skriva-ut-bild-från-musql-via-img-tag"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "phpNyb"
published: "2010-04-29T09:34:23.000Z"
updated: "2010-05-03T12:46:21.000Z"
replies: 12
views: 709
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/183350-hjälp-att-skriva-ut-bild-från-musql-via-img-tag"
---

# Hjälp att skriva ut bild från musql via img tag

## #1 — phpNyb, 2010-04-29T09:34Z

Hej,

Jag lagrat bilder i mysql databas via formulär. Det går bra att skriva ut bilder enligt följande:

$q = "SELECT image, image_name, image_type, image_size FROM images WHERE image_id=1";

$r = mysqli_query ($dbc, $q);
if (mysqli_num_rows($r) == 1) {
$row = mysqli_fetch_array ($r, MYSQLI_ASSOC);
mysqli_free_result($r);

header ("Content-Type: {$row\['image_type'\]}\\n");
header ("Content-disposition: inline; filename=\\"{$row\['image_name'\]}\\"\\n");
header ("Content-Length: {$row\['image_size'\]}\\n");

$bild = $row\['image'\];
echo $bild;

}

Men jag vill helst använda img tag för att kunna bestämma bredden och höjden på bilden:

\<img src="\<?php print $bild; ?\>" width="100" height="75"/\>

Jag får följande error meddelande:Bilden kan inte visas 

Är det någon som kan hjälpa mig?
Tack i för hand!

phpNyb

Permalänk: https://www.webforum.nu/p/183350

## #2 — metalboy, 2010-04-29T10:20Z

Du får då anropa ett php-script som skriver ut bildkoden i \<img\>-taggen.

Typ så här:

```
<img src="bild.php?id=1" width="100" height="75">
```

och bild.php:

```php
$q = "SELECT image, image_name, image_type, image_size FROM images WHERE image_id=" . intval($_GET['id']);

$r = mysqli_query ($dbc, $q);
if (mysqli_num_rows($r) == 1) {
$row = mysqli_fetch_array ($r, MYSQLI_ASSOC);
mysqli_free_result($r);

header ("Content-Type: {$row['image_type']}\n");
header ("Content-disposition: inline; filename=\"{$row['image_name']}\"\n");
header ("Content-Length: {$row['image_size']}\n");

$bild = $row['image'];
echo $bild;

}
```

Permalänk: https://www.webforum.nu/p/2234031

## #3 — phpNyb, 2010-04-29T13:49Z

Tack för svaret,
Jag får inte den att fungera än, jag får samma fel-meddelande:
Bilden kan inte visas

$q = "SELECT image, image_name, image_type, image_size FROM images WHERE image_id=" . intval(1);

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

  
     if (mysqli_num_rows($r) == 1) {

   
     $row = mysqli_fetch_array ($r, MYSQLI_ASSOC);

  
    mysqli_free_result($r);

   
header ("Content-Type: {$row\['image_type'\]}\\n");
header ("Content-disposition: inline; filename=\\"{$row\['image_name'\]}\\"\\n");
header ("Content-Length: {$row\['image_size'\]}\\n");
    
	//$bild = $row\['image'\];
	//echo $bild;
	
	?\>
	\<img src="bild.php?id=1" width="100" height="75"\>
	\<?php
	
     }

Permalänk: https://www.webforum.nu/p/2234047

## #4 — metalboy, 2010-04-29T14:16Z

HTML-koden (\<img\>) och PHP-koden måste (läs: bör, det går annars också, men blir krångligare) ligga i olika filer.

Alltså, skapa en fil som heter test.html med följande innehåll:

```
<img src="test.php?id=1" width="100" height="75">
```

Sedan skapar du en fil som heter test.php med följande innehåll:

```php
<?php
// OBS! Lägg in din kod för att ansluta till MySQL här...
$q = "SELECT image, image_name, image_type, image_size FROM images WHERE image_id=" . intval($_GET['id']);

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

if (mysqli_num_rows($r) == 1) {
    $row = mysqli_fetch_array ($r, MYSQLI_ASSOC);
    mysqli_free_result($r);

    header ("Content-Type: {$row['image_type']}\n");
    header ("Content-disposition: inline; filename=\"{$row['image_name']}\"\n");
    header ("Content-Length: {$row['image_size']}\n");

    $bild = $row['image'];
    echo $bild;
}
```

Och testa :)

Permalänk: https://www.webforum.nu/p/2234050

## #5 — phpNyb, 2010-04-29T15:28Z

Tusen Tack!

Jag uppskattar högt din skicklighet!
Det fungerar nu när jag skapat en annan html-fil som du sa:
Test.html
\<img src="test.php?id=1" width="200" height="175"\>

Hälsningar
phpNyb

Permalänk: https://www.webforum.nu/p/2234060

## #6 — phpNyb, 2010-05-03T07:21Z

Sidan blir tom när jag skriver ut bilden från Mysql

Hej igen,

Det går bra att skriva ut bilder enligt koden nedan, men när jag lägger en rad till högst upp ex:
\<?php require_once("includes/functions.inc.php"); ?\>
\<?php    
$dbc = @mysqli_connect('localhost', 'an', 'ln', 'db')
or die   ('Could not connect to MySQL: ' . mysqli_connect_error());... eller inbäddad i en annan sida då kommer det ingen bild.
Är det någon vänlig själ som vet vad är lösningen?
Jag är nybörjare på php!

test.html
\<img src="test.php?id=16" width="200" height="175" /\>

test.php:
\<?php    
$dbc = @mysqli_connect('localhost', 'an', 'ln', 'db')
or die   ('Could not connect to MySQL: ' . mysqli_connect_error());
     
$q = "SELECT image, image_name, image_type, image_size FROM images WHERE image_id=" . intval($\_GET\['id'\]);
     
$r = mysqli_query ($dbc, $q);    
if (mysqli_num_rows($r) == 1) {
$row = mysqli_fetch_array ($r, MYSQLI_ASSOC);
mysqli_free_result($r);
header ("Content-Type: {$row\['image_type'\]}\\n");
header ("Content-disposition: inline; filename=\\"{$row\['image_name'\]}\\"\\n");
header ("Content-Length: {$row\['image_size'\]}\\n");
    
echo $row\['image'\];
}     
mysql_close ( $dbc );
  
?\>

Permalänk: https://www.webforum.nu/p/2234262

## #7 — metalboy, 2010-05-03T11:35Z

Felet beror på radbrytningen mellan ?\> och \<?php på rad 1 och 2. Det skickas nämligen till besökaren som "output" och du kan då inte sätta egna headers. Om du testar att surfa direkt till test.php så ska du - om du har aktiverat visning av felmeddelanden - se ett felmeddelande som säger typ "Warning: Cannot modify header information - headers already sent".

Lösning:
Skriv så här istället

```php
<?php require_once("includes/functions.inc.php");
$dbc = @mysqli_connect('localhost', 'an', 'ln', 'db')
```

Det finns ingen som helst anledning att hoppa in och ur php-läge i det fallet

Permalänk: https://www.webforum.nu/p/2234277

## #8 — phpNyb, 2010-05-03T12:14Z

Tack metalboy,

Jag provat med följande men bilden syns inte än!

\<?php require_once("includes/functions.inc.php");
$dbc = @mysqli_connect('localhost', 'an', 'ln', 'db') 

Tack!

Permalänk: https://www.webforum.nu/p/2234279

## #9 — @nders, 2010-05-03T12:16Z

Prova att gå till url:en direkt via webbläsarens adress-rad istället för att gå via en \<img\>-tagg - då kan du se om koden genererar något felmeddelande eller om något oväntat skrivs ut som gör att det inte blir någon bild.

mvh

Permalänk: https://www.webforum.nu/p/2234280

## #10 — phpNyb, 2010-05-03T12:25Z

Jag har provat direkt via webbläsarens adress-rad, jag får fel-meddelande: Bilden kan inte visas, då den innehåller fel.

Men när jag tar bort raden: (require_once("includes/functions.inc.php"); ) så funkar det. Men jag behöver inbädda koden in i sidan i header, funktioner...

Tack!

Permalänk: https://www.webforum.nu/p/2234281

## #11 — @nders, 2010-05-03T12:32Z

> Men jag behöver inbädda koden in i sidan i header, funktioner...

Vad menar du med det? En bild är en bild.

Permalänk: https://www.webforum.nu/p/2234283

## #12 — metalboy, 2010-05-03T12:35Z

Har du någon form av output i functions.inc.php ? Tänk på att radbrytningar och mellanslag utanför "php-läge" räknas som output.

Du kan också prova att kommentera bort dina headers och se om du får något php-felmeddelande då.

Permalänk: https://www.webforum.nu/p/2234284

## #13 — phpNyb, 2010-05-03T12:46Z

Tack så mycket! det fungerar

Tack så mycket!!!!

Det är just vad det berodde på, jag hade radbrytningar och mellanslag i functions.inc.php, jag tog bort dem sedan började fungera. 

Tack för hjälpen!

Permalänk: https://www.webforum.nu/p/2234290

---

Tråden på webben: https://www.webforum.nu/amne/php/183350-hjälp-att-skriva-ut-bild-från-musql-via-img-tag
