2012-02-09 105 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

相關問題