茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729107 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
HoneyMoon_Day2_00076.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2011/8/13 3:22:57
引言:

由訪客「php」所發表的文章。
---

前輩你好, 請問如果要讓User點連結後把搜尋資料結果轉乘EXCEL
要如何做呢? 謝


冷日:
說真的,冷日對於這個問題,有點納悶!
依照冷日上一篇([分享]冷日的 php query mssql 2 excel 範例)的說法,應該可以解決這個疑惑不是嗎?
問題的癥結再哪呢?沒有思考過?沒有Code的能力?沒有Code的經驗?或是根本沒有把上一篇看懂呢?冷日真的有點疑惑,不知道要用哪個角度切入來回答這問題!

好吧,冷日自己當作自己是初心者,來看待這個『讓User點連結後把搜尋資料結果轉成EXCEL』需求如何用「[分享]冷日的 php query mssql 2 excel 範例」來解決會是這樣的思路:
1.要給使用者點擊的連結要先做出來!
2.該連結的href會是我們寫出來的php程式,比方說:searchResult2Excel.php
3.searchResult2Excel.php的內容應該和[分享]冷日的 php query mssql 2 excel 範例裡面的Code幾乎一模一樣!
大致上會長這樣:
<?php //先來做資料連線的設定:
// define database parameter
$dbHost = "192.168.OOO.XXX";  //資料庫IP
$dbUsername = "OOXX";         //資料庫連線帳號
$dbPassword = "OOXXOOXXOOXX"; //資料庫連線密碼
$dbDbName = "OOXX";           //資料庫名稱
$dbTablename = "OOOXXX";      //資料表名稱

// connection to the database
$Connect = mssql_connect($dbHost, $dbUsername, $dbPassword)
    or die("Couldn't connect to SQL Server on $dbHost");

// select a database to work with
$selected = mssql_select_db($dbDbName, $Connect)
    or die("Couldn't open database $dbDbName");
?>
<?php  //然後是輸出 Excel 最重要得 Header 部份:
// set header infomation
$file_type = "vnd.ms-excel";
$file_ending = "xls";
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/$file_type");
header("Content-Disposition: attachment; filename=$dbTablename.$file_ending");
header("Content-Transfer-Encoding: binary ");
header("Pragma: no-cache");
header("Expires: 0");
?>
<?php  //然後去把資料庫撈出來:
// export data to excel
$sql = 'SELECT * FROM ' . $dbTablename . ' WHERE `OOColnum` LIKE '%SearchKeyWord%' ;';  //這裡就是搜尋字串和搜尋欄位的sql語法,也就是說,你原本的搜尋資料怎麼作,這裡就是帶入一樣的sql語法就好啦!
//$ALT_Db = @mysql_select_db($dbDbName, $Connect) or die("Couldn't select database");
//$result = @mysql_query($sql,$Connect) or die(mysql_error());
$result = @mssql_query($sql,$Connect) or die(mysql_error());
?>
<?php  //設定第一行的表頭:
$sep = "\t";
$title2Write = array('產品編號' , '產品序號' , '產品類別' , '產品名稱' , '產品單位' , '產品單價' , '最低訂量' );  //因為你搜尋的資料表定義冷日完全無法預想,請自己依據你搜尋的資料表欄位填入Excel表頭
for ( $i = 0 ; $i < 7 ; $i++ ) {
	echo iconv( "UTF-8" , "big5" , $title2Write[$i] ) . "\t";
}
print("\n");
?>
<?php  //把資料開始塞到Excel 的所有欄位:
$i = 0;
while($row = mssql_fetch_row($result)) {
    $schema_insert = "";
    for( $j = 0 ; $j < mssql_num_fields($result) ; $j++ ) {
        if(!isset($row[$j]))
            $schema_insert .= "NULL".$sep;
        elseif ($row[$j] != "")
            $schema_insert .= "$row[$j]".$sep;
        else
            $schema_insert .= "".$sep;
    }
    $schema_insert = str_replace($sep."$", "", $schema_insert);
    $schema_insert .= "\t";
    print(trim($schema_insert));
    print "\n";
    $i++;
}?>

4.這不就完工了?換言之,根本就是[分享]冷日的 php query mssql 2 excel 範例抄一抄就有答案啦!

冷日到現在還是不解這個問題的癥結在哪裡! 疑惑
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|