Gå til innhold

Bilde fra sql til xhtml


Anbefalte innlegg

Hallo, har klart å legge bildet inn i mysql, nå er problemet å få det ut igjen.

 

Tabellen som bildene lagres i ser slik ut.

CREATE TABLE imgs (
 news_date date NOT NULL,
 news_time time NOT NULL,
 name VARCHAR(30) NOT NULL,
 type VARCHAR(30) NOT NULL,
 size INT NOT NULL,
 content MEDIUMBLOB NOT NULL,
 PRIMARY KEY (news_date,news_time)
)

 

Problemet mitt er å hente bildet ut fra tabellen og vise det frem.

$sql = "SELECT name, type, size, content FROM imgs WHERE news_date = '$news_date' AND news_time = '$news_time'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
.....
.....
print "<img src=\"......\" alt=\"".$row['name']."\"/>";

 

Problemet mitt er hvordan jeg tar info fra sql og setter sammen til ett bilde som kan vises. Noen som har noe godt forslag?

 

Mvh Magnus

Lenke til kommentar
Videoannonse
Annonse

du skal kunne bruke "<object>" taggen, men denne er ikke så veldig populær etter det jeg vet :p Man kan jo sjekke på acid2 testen, der er det mye bruk av object.. :)

 

Ellers ville jeg nok brukt et eget phpscript:

<?php

$sql = "SELECT name, type, size, content FROM imgs WHERE news_date = '$news_date' AND news_time = '$news_time'";
$result = mysql_query($sql);
$array = mysql_fetch_array($result,MYSQL_ASSOC);

if($array["type"] == "jpeg"){$img = imagecreatefromjpeg($array["content"]);}
elseif($array["type"] == "gif"){$img = imagecreatefromgif($array["content"]);}
elseif($array["type"] == "png"){$img = imagecreatefrompng($array["content"]);}

imagejpeg($img);
imagedestroy($img);

?>

 

 

Gjetter bare villt, aner ikke om dette funker ;)

 

tror heller :

<?php 

$sql = "SELECT name, type, size, content FROM imgs WHERE news_date = '$news_date' AND news_time = '$news_time'";
$result = mysql_query($sql);
$array = mysql_fetch_array($result,MYSQL_ASSOC);
echo "<object data=\"data:image/".$array["type"].";base64,".$array["content"]."\" > </object>";

?>

 

eller:

 

<?php 

$sql = "SELECT name, type, size, content FROM imgs WHERE news_date = '$news_date' AND news_time = '$news_time'";
$result = mysql_query($sql);
$array = mysql_fetch_array($result,MYSQL_ASSOC);
echo "<img src=\"data:image/".$array["type"].";base64,".$array["content"]."\"  alt=\"\"/>";

?>

 

 

Og en jeg VET funker:

 

bilde.php:

<?php

$sql = "SELECT name, type, size, content FROM imgs WHERE news_date = '$news_date' AND news_time = '$news_time'";
$result = mysql_query($sql);
$array = mysql_fetch_array($result,MYSQL_ASSOC);

header("content-type: image/".$array["type"].");
echo $array["content"];

?>

Endret av Axentrix
Lenke til kommentar

Tror kanskje det ble litt feil med " i det siste eksemplet der.

 

Men uansett, jeg har ikke fått det til å fungere enda. Nå har jeg

 

print "<img src=\"img.php\" alt=\"Nyhet\"/>";

 

også ser img.php slik ut:

<?php
$sql = "SELECT name, type, size, content FROM imgs WHERE news_date = '$news_date' AND news_time = '$news_time'";
$result = mysql_query($sql);
$array = mysql_fetch_array($result,MYSQL_ASSOC);

header("content-type: image/".$array["type"].");
echo $array["content"];

?>

 

Jeg tror problemet er at koden som er i img.php aldri blir kjørt. Noen tips?

 

Magnus

Lenke til kommentar
Tror kanskje det ble litt feil med " i det siste eksemplet der.

 

Men uansett, jeg har ikke fått det til å fungere enda. Nå har jeg

 

print "<img src=\"img.php\" alt=\"Nyhet\"/>";

 

også ser img.php slik ut:

<?php
$sql = "SELECT name, type, size, content FROM imgs WHERE news_date = '$news_date' AND news_time = '$news_time'";
$result = mysql_query($sql);
$array = mysql_fetch_array($result,MYSQL_ASSOC);

header("content-type: image/".$array["type"].");
echo $array["content"];

?>

 

Jeg tror problemet er at koden som er i img.php aldri blir kjørt. Noen tips?

 

Magnus

5147651[/snapback]

 

ja:

 

endre til:

header("content-type: image/".$array["type"]);

 

Du kan jo eventuelt bare kjøre en

print_r($array) da, og sjekke hva som faktisk ligger i arrayet.. ;)

 

MENNEH!!

Du har jo ingen news_time og news_date variabel.. :p

hent dem med getvariabler eller no;)

<?php

$sql = "SELECT name, type, size, content FROM imgs WHERE news_date = '$_GET["news_date"]' AND news_time = '$_GET["news_time"]'";
$result = mysql_query($sql);
$array = mysql_fetch_array($result,MYSQL_ASSOC);

header("content-type: image/".$array["type"].");
echo $array["content"];

?>

 

og

echo("<img src=\"img.php?news_date=13&news_time=100\">");
//Eller hva enn news_date og news_time skal være...

 

 

;)

 

Problemet er selvsagt at du ikke henter ut noe fra databasen nå.. :)

Endret av Axentrix
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...