Отображать изображение вместе с другими данными в таблице - PullRequest
0 голосов
/ 09 февраля 2012

Я знаю, что это не самая лучшая техника, но, исходя из опыта Foxpro и Dbase, некоторые привычки просто не умирают.Я абсолютно новичок в PHP и пытаюсь воссоздать кривую обучения моего более раннего опыта программирования.

Я пробежал GOOGLE по этой проблеме и попытался придумать сценарий, иногда возникает только одна проблема.мусор, иногда пустой экран, иногда только ИЗОБРАЖЕНИЕ.Сценарий: если я смогу создать этот простой сценарий, я, вероятно, пойму, как справиться с проблемой изображений.

У меня есть база данных в моем MYSQL, которая называется crm.В базе данных у меня есть таблица с именем mast_cust с полями f_name, l_name и pic (BLOB)

У меня уже есть некоторые записи в них.

Что я понялабыло:

  • Изображения и данные (текстовые) не могут быть напечатаны вместе
  • У вас должно быть два сценария, один для сбора изображения, а другой для сбора данных
  • тот, который собирает данные, вызывает тот, который собирает изображения и печатает его.

Я хочу видеть данные в табличном формате

First Name |   Last Name    |    Image

Это мои два сценария,это тот, который печатает искаженный Сценарий 1: основной файл PHP - list.php сценарий 2: сценарий хранения изображений: pix.php


list.php

<?php
  $errmsg = "";

  if (! @mysql_connect("localhost","root","Admin"))
  {
    $errmsg = "Cannot connect to database";
  }
  @mysql_select_db("crm");

  $strSQL = "select f_name,l_name,pic from mast_cust";
  $rsPix = mysql_query($strSQL);
  $numRows = mysql_numrows($rsPix);
  $i = 0;

  while($i < $numRows){
?>
<img src="pix.php?pixID=<?php echo mysql_result($rsPix,$i,"pic"); ?>"/>
<?php
  $i++;
}
?>

Сценарий 2 pix.php

<?php 
  $errmsg = "";
  if (! @mysql_connect("localhost","root","Admin"))
  {
    $errmsg = "Cannot connect to database";
  }
  @mysql_select_db("crm");

  if (IsSet($_GET['pixID'])){
    $gotten = @mysql_query("select pic from pix where cust_id = ".$_GET['pixID']);
    header("Content-type: image/jpeg");
    while ($row = mysql_fetch_array($gotten))
    {
      print $row['pic'];

    }
    mysql_free_result($gotten);
  }
?>

Любая помощь в решении этой проблемы высоко ценится.

Спасибо и С уважением

1 Ответ

0 голосов
/ 09 февраля 2012

Похоже, что вы сохраняете изображение в формате JPEG в виде большого двоичного объекта в MySQL.

1.) Одновременно можно отправлять только одну фотографию.Так что нет необходимости для цикла.2.) Если это так, вам нужно отформатировать вывод данных для ПОС, чтобы браузер мог их прочитать.

Я бы рекомендовал против такого подхода.Вы должны избегать использования реляционной базы данных для хранения изображений.Попробуйте сохранить jpegs в обычной файловой системе или на файловом сервере (например, S3) и сохранить URL-адрес в базе данных.

Если запутывания URL-адреса изображения недостаточно, попробуйте следующий подход:

Эхо / печать jpg-изображения с помощью php, для безопасности?

Используется: http://php.net/manual/en/function.readfile.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...