Osaisiko joku sanoa mikä koodissa mättää? Tarkoitus olisi kaivaa tekstitietoa sekä BLOB-kuva tietokannasta html:n ja php:n sekaan <img src=kuvanhaku.php>:lla. Tekstin noutaminen php:lla onnistuu loistavasti, mutta kuvaa en saa näkymään.
Kuva näkyy jos viittaan suoraan johonkin tietyyn id:en (esim <img src="kuvanhaku.php?show=id">), mutta näin kuva on tietysti aina sama. Jos yritän viitata vaihtuvaan id:en (esim <img src="kuvanhaku.php?show=$id">) en saa kuvaa näkyviin. Tekstin kanssa moinen toimii kyllä.
Alla kuvanhaku.php koodi:
$id=$_GET['show']; $result = mysql_query("SELECT type, pic FROM kanta WHERE id=$id "); if (mysql_num_rows($result) == 0) die('no image'); list($type, $pic) = mysql_fetch_row($result); header('Content-Length: '.strlen($pic)); header("Content-type: image/{$type}"); echo $pic;
Ggnome kirjoitti:
Kuva näkyy jos viittaan suoraan johonkin tietyyn id:en (esim <img src="kuvanhaku.php?show=id">), mutta näin kuva on tietysti aina sama. Jos yritän viitata vaihtuvaan id:en (esim <img src="kuvanhaku.php?show=$id">) en saa kuvaa näkyviin. Tekstin kanssa moinen toimii kyllä.
En nyt oikein ymmärrä että mitä tarkoitat sillä että mikä toimii ja mikä ei. Toimiiko siis esim:
kuvanhaku.php?show=5
"kuvanhaku.php?show=5" toimii, samaa tarkoitus tuolla "kuvanhaku.php?show=id":llä.
Sivuston rakenne on se, että minulla on linkkilista -> linkeistä aukeaa sivu jonka sisältö määräytyy valitun linkin osoittaman id:n mukaan. Tällä sivulla on tekstiä, jonka hakeminen kannasta onnistuu seuraavasti:
$id=$_GET['show']; $result = mysql_query("SELECT sitätätä FROM kanta WHERE id='$id' ");
Haluaisin tälle sivulle myös kuvan, joka on tallennettu kantaan. Tätä varten tein ulkoisen kuvanhaku.php:n jota kutsutaan <img src=>:llä. En kuitenkaan saa kuvaa tulostumaan, vika täytyy jotenkin liittyä tuohon id:n esittämiseen. Yritin myös:
<img src="kuvanhaku.php?show=<?php print $id;?>
ei auttanut.
Jos kuvanhaku.php?show=5 toimii niin kyllähän kuvanhaku.php?show=$id pitäisi kanssa toimia, jos vaan $id:llä on joku toimiva(eli sellainen, että sillä id:llä kuva löytyy) arvo.
Kappas, sain ongelman ratkaistua sillä että otin <img src=>-lauseen pois html:n seasta ja ymppäsin sen php:n sekaan seuraavasti:
echo "<tr class='x'>";
echo "<img src='kuvanhaku.php?show={$id}' />";
echo "</tr>"
Hakasulkeet id:n ympärillä olivat homman avain.
Ongelma olisi varmasti selvinnyt heti kurkkaamalla PHP:n tulostamaa html-koodia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.