在表格中显示图像和其他数据

时间:2012-02-09 00:44:38

标签: php mysql image

我知道这不是最好的技术,但是来自Foxpro和Dbase背景,一些习惯就不会死。我在PHP中非常新鲜,并试图重新创建我早期编程经验的学习曲线。

我已经为这个问题钻了GOOGLE,并试图拿出脚本,只有问题有时我想出了一些乱码,有时空屏,有时只有IMAGE。 场景是如果我能够创建这个简单的脚本,我可能会理解如何处理图像问题。

我的MYSQL中有一个名为crm的数据库。在数据库中,我有一个名为mast_cust的表,其中包含字段f_namel_namepic(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 :(得分:0)

您似乎将jpeg图像存储为mysql中的blob。

1。)您一次只能发送一张图片。所以不需要for循环。 2.)如果是这样,您需要格式化pic的数据输出,以便浏览器可以读取它。

我建议不要采用这种方法。您应该避免使用关系数据库来存储图像。尝试将jpeg存储在常规文件系统或文件服务器(如S3)上,并将URL存储在数据库中。

如果模糊图片网址不够,请尝试以下方法:

Echo/print a jpg-image with php, for safety?

它使用: http://php.net/manual/en/function.readfile.php