對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2011/8/13 3:22:57
引言:
冷日:
說真的,冷日對於這個問題,有點納悶!
依照冷日上一篇([分享]冷日的 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幾乎一模一樣!
大致上會長這樣:
4.這不就完工了?換言之,根本就是[分享]冷日的 php query mssql 2 excel 範例抄一抄就有答案啦!
冷日到現在還是不解這個問題的癥結在哪裡!
由訪客「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 範例抄一抄就有答案啦!
冷日到現在還是不解這個問題的癥結在哪裡!
