blob из mysql в jpg php

ilias_n

Новичок
blob из mysql в jpg php

Есть база с blob в который залиты jpg файлы
Как их вытащить и корректно выводить в php
Решение
header("Content-type: image/gif");
echo $image;
предложенное на http://www.php.spb.ru/php/image.html не срабатывает потому как рисунок из базы я вытаскиваю не 1 а кучу посреди php скрипта с html тегами.

Чуть подумав я сделал так

<?
$db=mysql_connect("localhost","root");
mysql_select_db("superbd",$db);
$sql="select * from prise";
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result))
{
echo " <br>$row[1]<br>$row[2]<br>$row[3]<br>";

$rio=fopen("temp.jpg","w");
fwrite($rio,$row[4]);
echo "<IMG src=temp.jpg><br>";
unlink("temp.jpg");
};
?>
выдает ошибку в unlink а без unlink выводит для разных записей базы одну и ту же фотку хотя фотки для каждой записи разные
$row[4] это blob в котором jpg

Прошу обьяснить как надо это правильно реализовать и в чем моя ошибка
Заранее благодарен
 

neko

tеam neko
хаха
по твоему браузер полезет за фоткой между echo и unlink?
в этом и ошибка
 

Кром

Новичок
Красотища!
Ну во первых в поиске нужно поискать. Тем таких хватает.
Во вторых, стоит перечитать статью и постараться понять, что для того чтобы скачать картинку с сервера, броузер делает дополнительный запрос к серверу. И никак иначе.
 

ilias_n

Новичок
NEKO
спасибо я понял в чем была моя ошибка, теперь я сделал так и все работает

<?
$db=mysql_connect("localhost","root");
mysql_select_db("superbd",$db);
$sql="select * from prise";
$result=mysql_query($sql);
$i=1;
while ($row=mysql_fetch_array($result))
{
echo " <br>$row[1]<br>$row[2]<br>$row[3]<br>";

$rio=fopen($i.".jpg","w");
fwrite($rio,$row[4]);
echo "<IMG src=$i.jpg><br>";
fclose($rio);
$i=$i+1;
};

но на сайт это будет генерить кучу ненужных фоток которые и так есть в базе, поэтому то что я сделал наверно немного глупо

КРОМ

Я еще 3 раза прочитал ту статью и к сожалению не понимаю о чем ты пишешь и о чем писал автор статьи.
headerы должны вставляться до всяких php и html используемых в echo а это по моему мало где прокатит.
Прошу прощения если я не прав. Если знаешь как сделать обьясни пожалуйста
 

neko

tеam neko
да это глупо
если ты хранишь картинки в базе сделай скрипт который берет картинку с конкретным ай-ди и выдает ее
и ссылку на этот скрипт ставь в img src
 

Wave

Guest
а может не стоит хранить картинки в базе под управлением Mysql?
вроде она не очень дружит с blob, хранит блоб и текст в одном файле, отчего всячески снижается производительность, нет?
 

ilias_n

Новичок
Спасибо NEKO
сделал так

index.php
<?
$db=mysql_connect("localhost","root");
mysql_select_db("superbd",$db);
$sql="select * from prise";
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result))
{
echo " <br>$row[1]<br>$row[2]<br>$row[3]<br>";
echo"<img src=test.php?il=$row[0]>";
};
?>

test.php
<?
$db=mysql_connect("localhost","root");
mysql_select_db("superbd",$db);
$sql="select * from prise where id='$il'";
$result=mysql_query($sql);
header("Content-type: image/gif");
while ($row=mysql_fetch_array($result))
{
echo $row[4];
}
?>

На удивление работает
большое спасибо за совет еще раз
 

neko

tеam neko
только while там лишний во втором скрипте
и не тягай по * если тебе надо только одно поле
сделай if, заодно можно выдавать какую-нибудь другую "отказную" если нужная не найдена, вместо эксплореровского креста
 

Фанат

oncle terrible
Команда форума
Wave
Ты пишешь совершенно невозможные вещи.
Не понимаешь человеческую психологию.
вот представь - ты придумал некую очень красивую идею.
Не беда, что идейка-то была красивой от недостатка знаний, и при реализации оказалась гораздо сложнее, чем казалось вначале. Но все равно ты понимаешь, какой ты умный и молодец.
И тут приходит такой умник и всю малину обгаживает. прислушаешься ты к нему? Конечно нет. Как так может быть, что ты - такой умный, и все неправильно придумал? Этот Wave просто завидует.
Как показывает практика, переубедить человека практически невозможно. Ведь чтобы убедить, нужно, чтобы у человека были знания и способность анализа. А у него только чувство собственного достоинства.
 

neko

tеam neko
Фанат
что за упорное такое сопротивление картинкам в базе :)
бывает когда это очень удобно
незнаю как там этот майэскуэль с блобами дружит, но любая взрослая субд таких проблем не имеет
 

Фанат

oncle terrible
Команда форума
очень просто.
его "удобно" кардинально отличается от твоего.
вот и все.
твое - от знания, а его - наоборот.
 

ilias_n

Новичок
Уважаемый Фанат. Вы без всякого сомнения в mysql и php разбираетесь гораздо лучше меня. Я пишу на php не постоянно каждый день, а только когда возникает необходимость. Последний раз она возникала год назад. Поэтому знаю я гораздо меньше Вашего. Это ясно из количества Ваших постов на этом форуме и моих. Но мне кажется умному человеку на умном форуме, если отвечаешь, необходимо писать что то содержательное, а не подчеркивать свою значимость бессодержательными личностными постами
По поводу картинок и базы я честно говоря не знаю что будет быстрее. Просто припоминаю как году в 2002 на этом форуме (правда он был чуть чуть по другому адресу) некто RomikChef (думаю что уважаемый на этом форуме) доказывал, что файлы это прошлый век и работать надо только с базой
Никого не хотел обидеть и с уважением ко всем
 

Screjet

Новичок
2Фанат,

Есть варианты, когда не просто можно, а и нужно картинки както упаковывать (в мускул, тар или зип, етц).

Например, ситуация: картинок миллион и все мелкие (100-300байт).

Для размышления:
1) стандартный суперблок имеет р-р 8-16Кб (кластер ФАТ32 столько-же).
2) всякие думы, кваки свои ресурсы содержат в упаковках.
 

Фанат

oncle terrible
Команда форума
neko, хихикать тут не над чем.
Убогих жалеть надо. Этого и скрежета.
А ты хихикаешь.
 

Screjet

Новичок
Originally posted by Фанат
neko, хихикать тут не над чем.
Убогих жалеть надо. Этого и скрежета.
А ты хихикаешь.
Незабудь в список убогих включить ID Software, Microsoft и Линуха Торвальдса :)
 

_RVK_

Новичок
некто RomikChef (думаю что уважаемый на этом форуме) доказывал, что файлы это прошлый век и работать надо только с базой
Сможешь найти этот топик? Я его распечатаю и в рамку на стену повешу...
 

Фанат

oncle terrible
Команда форума
Я же говорю.
Придурок тем и отличается от умного, что вместо того, чтобы ОСМЫСЛИТЬ полученную информацию, просто повторяет ее, как попугай.
ИД упаковывает? Значит и мы в вебе будем упаковывать. чтобы показать на странице сто мелких картинок, запустим сто пхп скриптов. А чо? Не торвальдсы чоли?

Раз сказано, что для хранения текстов база лучше - значит будем валить в нее все - картинки, мп3, дивиксы.

Главное - чтобы авторитет был, на которого сослаться. Своего-то мозга бог не дал.

-~{}~ 16.08.04 12:34:

Diesel
Для тупых поясняю. Про картинки в базе RomikChef НИКОГДА такого не говорил.
 

_RVK_

Новичок
Фанат
Про картинки в базе RomikChef НИКОГДА такого не говорил
Знаю. Поэтому я и хотел бы увидеть этот топик. Все знают что папоротник не цветет, но каждый хотел бы найти цветок папоротника.
 
Сверху