TShopping

 找回密碼
 註冊
搜索
樓主: woff
打印 上一主題 下一主題

[教學] PHPExcel 資料匯入MYSQL 資料庫(excel 2003 2007都能用)

  [複製鏈接]
21#
發表於 2013-9-17 20:56:06 | 只看該作者
 
woff 發表於 2013-9-16 23:55
我給你個檔案 你慢慢改 那檔案很大

還是不行,弄不出來,請Woff看一下到底是哪裡出問題了,流程是:寫了一個表單然後上傳檔案,判斷是否上傳,之後就呼叫function uploadFile,然後刪除上傳檔案,最後EXCEL檔裡的內容匯入資料庫。
程式流程是這樣子吧。

但是匯入的過程很奇怪,首先網頁停了很久還停止回應之後進去資料庫查詢還重複一筆,就像是EXCEL檔重複傳兩次一樣(匯的內容很怪),如附圖和附檔:裡面有SQL檔和測試用的EXCEL檔和程式碼,謝謝。


https://www.dropbox.com/s/jyd84zyeyhy7fk2/www%281%29.rar


 

22#
 樓主| 發表於 2013-9-17 22:56:33 | 只看該作者
當然阿,傳完後檢查資料表~

第二次傳時會偵錯~

某項偵測到後~會告訴你已經匯入過了~

版主招募中

23#
發表於 2013-9-18 09:01:41 | 只看該作者
本帖最後由 YanLongChen 於 2013-9-18 10:51 編輯
woff 發表於 2013-9-17 22:56
當然阿,傳完後檢查資料表~

第二次傳時會偵錯~

匯入後不能快轉到原來的網頁而是等很久後網頁停止回應,而且也沒有彈出視窗說匯入是否成功,我只上傳一次,可是資料表的內容卻有重複就如21樓的附圖一樣,難道沒辦法匯入後快速轉回頁面且彈出視窗是否有成功匯入的提醒,然後資料表的資料沒有重複,我想要的結果是這樣,可是我看程式碼的邏輯應該是沒錯才對,結果跑出來怪怪的,我真是想不通?

www.rar (6.17 KB, 下載次數: 68)





24#
 樓主| 發表於 2013-9-18 11:59:09 | 只看該作者
那你可針對步驟然後註解掉阿

例如從檔案上傳開始,看檔案是否有正確上傳

UNLINK先註解,然後檢查匯入資訊阿
$query部分都註解掉
只先提取$sql ="select XXX"部分並呼叫印出


25#
發表於 2013-9-18 14:38:50 | 只看該作者
本帖最後由 YanLongChen 於 2013-9-18 18:49 編輯
woff 發表於 2013-9-18 11:59
那你可針對步驟然後註解掉阿

例如從檔案上傳開始,看檔案是否有正確上傳

無解,照Woff給的程式碼再去改的話首先從表單開始然後送出,連接資料庫後,經判斷有上傳後,//獲取上傳的文件名$filename = $_FILES['inputExcel']['name'];

//上傳到服務器上的臨時文件名
$tmp_name = $_FILES['inputExcel']['tmp_name'];
$msg = uploadFile($filename,$tmp_name);
}
}


這部份我看不懂,可以請Woff解釋的詳細一點嗎?就是運作原理
抱歉,我很笨。

之後呼叫function uploadFile就開始匯入了EXCEL檔了,自己上傳EXCEL檔後的存放路徑($filePath =...),
$str = ""; =>這行是什麼意思

之後再把暫存資料夾的EXCEL檔,改檔名是上傳的時間之後,之後就有點看不太懂,
然後用move_uploaded_file函式把暫存資料夾裡的檔案搬到這裡($filePath =...),如果成功就開始匯入....最後刪除Excel文件並彈出視窗是否匯入成功....
請看程式碼,感謝。

www.rar (6.17 KB, 下載次數: 55)



26#
 樓主| 發表於 2013-9-19 12:30:03 | 只看該作者
不懂可以GOOGLE找一下PHP的用法
$tmp_name = $_FILES['inputExcel']['tmp_name'];
$msg = uploadFile($filename,$tmp_name);
這段是把檔案放在暫存區~


27#
發表於 2013-9-23 20:43:29 | 只看該作者
本帖最後由 YanLongChen 於 2013-9-23 20:44 編輯

我上網找到了跟Woff PO類似的程式碼,我有個問題就是使用PHPEXCEL套件用迴圈方法讀取XLS檔後可以直接用SQL語法寫入資料表?我查了每個範例都是差不多,不用另外寫變數接值嗎? 為什麼這樣寫的進資料表裡 ?,可以幫我解答一下嗎?
程式碼連結:https://www.dropbox.com/s/18iek7oezucz7eg/66.rar?m


28#
 樓主| 發表於 2013-9-23 23:23:15 | 只看該作者
那程式用陣列概念,先算出表格有內容的有多少項
然後用回圈繞多少次,這樣不就可以不用手動計算內容來改變迴圈的次數了嗎


29#
發表於 2013-10-2 19:06:49 | 只看該作者
我想問Woff為什麼要有這幾行指令

$nexttime = mktime()+86400*14;
$nexttime1 = mktime()+86400*14;
$nexttime2 = mktime()+86400*14;
$nexttime3 = mktime()+86400*14;
$nexttime4 = mktime()+86400*14;


mktime:這是取得時間和日期的函數吧?



30#
 樓主| 發表於 2013-10-2 19:09:32 | 只看該作者
YanLongChen 發表於 2013-10-2 19:06
我想問Woff為什麼要有這幾行指令

$nexttime = mktime()+86400*14;

那只是匯入時間欄位 預約時間而已 客戶要求的~


*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-19 13:09 , Processed in 0.047765 second(s), 18 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表