Autor Zpráva
pepa.domek
Profil *
Poradil by mi někdo jak udělat aby PHP script který najde v DB nejnovější obrázek vracel jen JPG a ne HTML stránku?
Zkoušel jsem googlit ale asi nevím jak to zadat protože jsem nic nenašel, děkuji za radu.
radas
Profil *
a co vše je uložene v db?
pepa.domek
Profil *
Název souboru a čas,pomocí SQL najdu nejnovejsi snimek ale potrebuju poradit, jak udelat aby ten php vratil jen obrazek a ne php stranku.
panther
Profil
pepa.domek:
PHP script který najde v DB nejnovější obrázek
ukládej si čas, tahej data seřazená dle času (order by). Případně, je-li tam ID auto_increment, můžeš řadit dle ID - nejnovější obrázek bude mít nejvyšší ID. Pokud s časem nepotřebuješ dále pracovat, např. ho vypisovat, je tam zbytečný.

jak udelat aby ten php vratil jen obrazek a ne php stranku.
tohle nechápu. SQL vrátí obrázek (lép ukládat jen cestu k němu, ne fyzicky celý obrázek), pomocí PHP ho vypíšeš na nějakou stránku.
pepa.domek
Profil *
panther: ale ja potrebuji aby mi neco.php vratilo primo obrazek a ne ... <img src="nalezenyobrazek.jpg"> ...atd. nevim jak to v php napsat
panther
Profil
pepa.domek:
tak můžeš třeba na ten obrázek přesměrovat, header().
Mikeses
Profil
pepa.domek:
Nevím co myslíš, ale snad ti to pomůže.
<?php
$nejnovejsiobrazek=mysql_query("SELECT * FROM tabulka order by ID DESC LIMIT 1");
while($nejnovejsiobrazek=mysql_fetch_array($nejnovejsiobrazek)) { 
echo "<img src=".$nejnovejsiobrazek["cesta"]." alt=".$nejnovejsiobrazek["popisek"].">";
}
?>
Debo
Profil *
Možná může být problém v tom co máš v databázi. Jestli si to uložil jako tag nebo to tam php vkládá jako tag a ne jako samotnou cestu tak je problém tady. Jestli máš v databázi jen samotnou cestu tak ti to nemůže načítat celý tag...
panther
Profil
Mikeses, Debo:
jste oba dva mimo. On nechce vypsat obrázek do stránky (tag IMG), chce něco jiného.
Keeehi
Profil
Nějak takto:
<?php
$result=mysql_query("SELECT cesta FROM tabulka ORDER BY id DESC LIMIT 1");
$cesta=mysql_result($result,0);
header("Content-Type: image/jpeg");
echo file_get_contents($cesta);
?>
pepa.domek
Profil *
panther: zkoušel jsem

….
$filepath =…

header("Content-Type: image/jpeg");
readfile($filepath);

ale obrazek mi to neukaze
Keeehi
Profil
Fungovat by to mělo. Pokud to nefunguje, máte nejspíše zapsanou špatně cestu.
pepa.domek
Profil *
tak se mi nakonec podarilo dopatrat vysledku kdyby to nekdy nekdo potreboval

<?php
….
$filepath =… 
header('Content-Type: image/jpeg');
ob_clean();
flush();
readfile($filepath);
exit;
?>

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).

Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
pepa.domek
Profil *
tak mi to fungovalo na localhostu ale na serveru ne (
AM_
Profil
[#13] pepa.domek
pokud to vypadá takhle, znamená to, že máš bordel jinde v kódu, funkce flush() je tam zcela zbytečná a pokud pomohl ob_clean, znamená to, že
1) máš zapnuté output bufferování a nemáš moc ošetřené jeho ukončení
2) před ob_clean() se zřejmě něco vypisovalo což by nemělo, protože pokud by ne, tak by ob_clean() nepomohl.

to co jsi napsal v [#11] pepa.domek je funkční, ale samozřejmě pokud to vrazíš doprostřed špatně napsaného kódu, tak sebelepší skript nebude dělat úplně to co má :)
pepa.domek
Profil *
Nevim si rady ale pokud pouziji jen toto

<?php
header('Content-Type: image/jpeg');
readfile('neco.jpg');
?>

tak to mi funguje, ale pokud tam mám vic kodu a i kdyz nic nevypisuje tak to nefunguje (

<?php
header('Content-Type: image/jpeg');

include("connect.php");
$sql = "select file from tab order by date desc limit 1";
$res = mysql_query($sql);
$zaz = mysql_fetch_array($res);
$file = $zaz["file"];
$filepath = "archiv/" . substr($file, 7, 6) . "/" . $file;

readfile($filepath);
?>

věděl by někdo proč ten druhy script má problém vrátit obrázek?
Keeehi
Profil
pepa.domek:
Zakomentuj header(); v druhém scriptu a vyskočí na tebe nějaká chybová hláška. Když tu chybu opravíš, mělo by to fungovat.
pepa.domek
Profil *
Keeehi: díky,ale žádná chyba tam nebyla
napadlo mě teď místo include("connect.php"); tam ty příkazy pro připojení do DB vložit přímo a už to jede,ale nechapu že tomu vadil include,jestli je nějaký jiný nastaveni na webhostingu než bývá zvykem,tomu nerozumím protože to funguje u jinych php stranek a znaky tam taky navic nevklada tak proc to vadilo v tomhle pripade nevim
Keeehi
Profil
Pak to asi mohla způsobit nějaká mezera před <?php nebo za ?> v tom includovaném souboru.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0