Avatar billede herchin Nybegynder
29. oktober 2000 - 20:34 Der er 10 kommentarer og
1 løsning

Vise billede fra mySQL

Jeg har et lille problem med at vise de billeder jeg har gemt i min database. I tabellen er gemt filen og ikke en reference!
Jeg bruger funktionen
print(\"$row[1]\"); - og det eneste der bliver udskrevet er \"3\". Det var egentligt meningen at billedet skulle vises :o)
Avatar billede jd Nybegynder
29. oktober 2000 - 20:41 #1
Du skal bruge en fil til at vise billederne, da der skal sættes nogle headers...

fx.

<?php
  mysql_connect(\"server\",\"brugernavn\",\"pass\") or die(mysql_error());
  @mysql_select_db($db) or die(mysql_error());
 
$sql = \"SELECT * FROM Images WHERE PicNum=$PicNum\";
$result = mysql_query(\"$sql\") or die(mysql_error());
$row = mysql_fetch_array($result);
Header(\"Content-type: image/jpeg\");
echo $row[Image];
?>

Håber du forstår idéen i det...
Ellers må du skrive igen!

/Jon@z
Avatar billede jd Nybegynder
29. oktober 2000 - 20:43 #2
Ovenstående kode kan du putte i en seperat fil med fx. navnet view.php og et billede kan så fx. kaldes med view.php?PicNum=1
Avatar billede andreas Nybegynder
29. oktober 2000 - 20:45 #3
kan vi ikke få hele koden... det ligger nok i noget andet...
Avatar billede jd Nybegynder
29. oktober 2000 - 20:50 #4
hvis han bare henter billed-koden med et simpelt query, og skriver det ud med print(\"$row[1]\"); må det da næsten være fordi han skal sætte nogle headers...der er jo ik så mange ben i det.
Avatar billede herchin Nybegynder
29. oktober 2000 - 21:04 #5
Her er lidt kode:

    header(\"content-type: image/gif\");
    $i = 0;
    while ($row = mysql_fetch_row($result)) {
        if (($i % 3) == 0) {
            print(\"<tr>\");
        };
        print(\"<td>\");
        print($row[1]);
        print(\"</td>\");
        print(\"<td>\");
        print($row[2]);
        print(\"</td>\");
        if (($i % 3) == 0) {
            print(\"</tr>\");
        };
        $i++;
    }; //while

Jeg har prøvet med den header!
Avatar billede jd Nybegynder
29. oktober 2000 - 21:16 #6
Hmm... man kan da vist ikke skrive html ud, når headersne er sat til at være et billede..
Hvad med at du smider dette i én fil:

$i = 0;
    while ($row = mysql_fetch_row($result)) {
        if (($i % 3) == 0) {
            print(\"<tr>\");
        };
        print(\"<td>\");
        print(\"<img src=\\\"view.php?id=ettal\\\">\");
        print(\"</td>\");
        print(\"<td>\");
        print(\"<img src=\\\"view.php?id=andettal\\\">\");
        print(\"</td>\");
        if (($i % 3) == 0) {
            print(\"</tr>\");
        };
        $i++;
    };

Og dette i view.php

<?php
  mysql_connect(\"server\",\"brugernavn\",\"pass\") or die(mysql_error());
  @mysql_select_db(\"din_db\") or die(mysql_error());

$result = mysql_query(\"SELECT * FROM Images WHERE id=$id\") or die(mysql_error());
$row = mysql_fetch_array($result);
Header(\"Content-type: image/jpeg\");
echo $row[Image];
?>

IKKE TESTET!!

/Jon@z
Avatar billede jd Nybegynder
29. oktober 2000 - 21:19 #7
bemærk: headeren i view.php er sat til at billed-koden er fra en jpeg-fil. Hvis det fx. også skal kunne være giffer, bliver du nødt til at gemme fil-formatet når billedet gemmes, og så sætte headeren til den fil-type der står i db\'en for det pågældende billede...
Avatar billede herchin Nybegynder
29. oktober 2000 - 21:24 #8
Det sidste spørgsmål :o)

- Hvordan gemmer jeg fil-formatet?
Avatar billede jd Nybegynder
29. oktober 2000 - 21:34 #9
Meget let...
Hvis navnet på din <input type=\"file\"... hedder fx. \"filen\" kan fil-typen findes med $filen_type.
Altså, hvis din form til at gemme med ser således ud:
<form action=\"bla.php\" method=\"post\">
<input type=\"file\" name=\"filen\">
<input type=\"submit\">
</form>

-kan du gemme fil-typen i db\'en med fx.

mysql_query(\"insert into din_tabel (fil_type) values (\'$filen_type\')\");

/Jon@z
Avatar billede herchin Nybegynder
29. oktober 2000 - 21:42 #10
Jeg tester det! Tusind tak for hjælpen :o)
Avatar billede jd Nybegynder
29. oktober 2000 - 21:44 #11
np
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester