Как выводить картинки BLOB из базы mysql?

Тема в разделе "Базы данных", создана пользователем web-investor, 21 ноя 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    501
    Симпатии:
    110
    Здравствуйте!

    У меня возникла проблема с базой mysql, а точнее с выводом картинок из нее.
    Вот какая ситуация, у меня есть mysql база, там имеется 5 полей, одно из них имеет mediumblob, соответсвенно в нем и находятся картинки. На против каждой записи в этом поле стоит [BLOB - 8.0 KB].

    Так вот собственно вопрос, подскажите, пожалуйста, каким образом можно выводить картинки из базы?

    С уважением, Александр.
     
  2. akhkharu

    akhkharu Постоялец

    Регистр.:
    26 июн 2007
    Сообщения:
    111
    Симпатии:
    12
    Обычно задача динамического вывода картинок (в вашем случае - из базы данных) решается по следующему алгоритму:

    1) Выдача браузеру правильного заголовка в соответствии с типом изображения (например, image/jpeg)

    2) Выдача браузеру самого изображения. Например, echo $result['image'];
     
    web-investor нравится это.
  3. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    501
    Симпатии:
    110
    Спасибо, akhkharu!

    А Вы бы не могли мне привести пример кода, с помощью которого можно было бы выводить изображения из базы?
     
  4. akhkharu

    akhkharu Постоялец

    Регистр.:
    26 июн 2007
    Сообщения:
    111
    Симпатии:
    12
    Сам я картинки в базе данных предпочитаю не хранить, так как это создает дополнительную ненужную нагрузку на сервер баз данных.

    Возможно, для вас окажется полезным следующий топик с форума mysql.ru: Перейти по ссылке.
     
  5. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    501
    Симпатии:
    110
    Спасибо за ссылку!

    Начал делать, как там написано, но кое-что не понятно, вот сам код:

    <?
    ... // подключение к Б.Д.
    $res=mysql_query("SELECT <поле> FROM <таблица> WHERE <условия>")
    or die("SQL ERROR in line ".__LINE__.", function mysql_query");
    $image=mysql_result($res, <строка>, <колонка>); // берем переменную из б.д.
    header("Content-type: image/gif");
    echo $image;
    ?>

    Не понятно, что значит <строка>, <колонка>?
    Допустим первая строк и четвертая колонка, то есть 1, 4 или как?
     
  6. akhkharu

    akhkharu Постоялец

    Регистр.:
    26 июн 2007
    Сообщения:
    111
    Симпатии:
    12
    mysql_result возвращает значение одной ячейки результата запроса. Эта ячейка определяется параметрами $row и $field (строка и колонка). То есть, если в запросе вам возвращается одна строка и вы запрашиваете одно поле (колонку), например, так SELECT image FROM data WHERE id='1', то mysql_result($res, 0) вернет значение поля image для строки с id='1'.
     
    web-investor нравится это.
Статус темы:
Закрыта.