2012-02-09 74 views
0

我知道这不是最好的技术,但是来自Foxpro和Dbase背景,有些习惯不会消失。我在PHP中绝对新鲜,并试图重新创建我早期编程经验的学习曲线。显示图像以及表格中的其他数据

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

我在我的MYSQL中有一个名为crm的数据库。在数据库中,我有一个带有字段f_namel_namepic(BLOB)称为mast_cust

我已经在他们的一些记录。

我明白了什么是:

  • 图像和数据(文本)不能一起打印
  • 你必须有两个剧本,一个收集图像和其他采集数据
  • 的其中一个收集数据,称为收集图像并打印它的那个。

我要的是,看到表格格式数据

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); 
    } 
?> 

任何解决此问题的帮助表示高度赞赏。

感谢和问候

+0

每当我看到用来代替他们往往有实际位置数据“数据:“在他们的开始。也许把它添加到你的打印语句的开头:print“data:”+ $ row ['pic']。但是,这可能仅适用于样式表。 – 2012-02-09 00:50:50

回答

0

好像要存储的JPEG图像在MySQL斑点。

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

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

如果混淆了图像的URL是不够的,试试下面的办法:

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

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

相关问题