|
|
|
ใช้งาน PHPExcel แล้วมันค้างตอน Reader ครับไม่สามารถอ่านไฟล์ Excel ได้เลยเเต่มันยังเขียนได้อยู่ |
|
|
|
|
|
|
|
สวัสดีครับผม
สอบถามหน่อยครับผม พอดีผมใช้ Library ของ PHPExcel เพื่อจะอ่านไฟล์เข้า MySQL ครับ
โปรแกรมเป็นการอ่านไฟล์รายชื่อบุคลากรเข้ามาแล้วก็ทำการเช็คว่าอยู่ในสาขาไหนก่อนเก็บลง DB ครับ
Code (PHP)
$fname = $_FILES['proctor']['name'];
$taget = "files/".$_FILES['proctor']['name'];
move_uploaded_file($_FILES['proctor']['tmp_name'],$taget);
$strSQL = "INSERT INTO log_file (LogFile_FName,LogFile_Date,LogType_Id_FK) Values ('$fname','$curDateTime','f01')";
$objQuery = mysql_query($strSQL);
$inputFileName = $taget;
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($inputFileName);
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = 'D';
$headingsArray = $objWorksheet->rangeToArray('A1:'.'D1',null, true, true, true);
$headingsArray = $headingsArray[1];
$r = -1;
$namedDataArray = array();
for ($row = 2; $row <= $highestRow; ++$row) {
$dataRow = $objWorksheet->rangeToArray('A'.$row.':'.'D'.$row,null, true, true, true);
if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) {
++$r;
foreach($headingsArray as $columnKey => $columnHeading) {
$namedDataArray[$r][$columnHeading] = $dataRow[$row][$columnKey];
}
}
}
$departmentID='';
$departmentName='';
$i = 0;
foreach ($namedDataArray as $result) {
if($departmentName != $result["Department"]){
$departmentName=$result["Department"];
$strSQL = "SELECT Depart_Id FROM 'department' WHERE Depart_Name = '$departmentName'";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
$departmentID = $objResult["Depart_Id"];
}
$i++;
$strSQL = "";
$strSQL .= "INSERT INTO personal ";
$strSQL .= "(Person_Name,Person_Position, Personal_Num_of_Proctor, Depart_Id_FK) ";
$strSQL .= "VALUES ";
$strSQL .= "('".$result["Name"]."','".$result["Position"]."' ";
$strSQL .= ",".$result["Number"].",'".$departmentID."')";
mysql_query($strSQL) or die(mysql_error());
echo "Row $i Inserted...<br>";
}
echo "file : ".$_FILES['proctor']['name'].">>>>Upload Complete<br>";
โค้ดประมาณนี้ครับ แต่พอรันแล้วมัน ค้างเลยครับ และ Apache ก็ค้างตามไปด้วยต้อง Restart ใหม่ครับผม ผมลองไปรันไฟล์ 07reader ที่มีมาใน Example ของ PHPExcel มันก็ค้างเหมือนกันครับ มันเกิดจากสาเหตุอะไรหรอครับผม
ผมใช้ Appserv 2.5.10 ครับผม
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2013-12-06 14:28:04 |
By :
เด็กหัดเดิน |
View :
1434 |
Reply :
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่มีท่านใดทราบเลยหรอครับ
|
|
|
|
|
Date :
2013-12-06 19:08:34 |
By :
เด็กหัดเดิน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var_dump($highestRow);die; ก่อนเข้า for loop ดูครับ
|
|
|
|
|
Date :
2013-12-06 19:23:52 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้เหมือนเดิมครับผม บราวเซอร์ มันยังหมุนอยู่ครับ แล้ว ก็จะเข้าเว็ปหน้าไหมไม่ได้เลยต้องรี Apache ใหม่
|
|
|
|
|
Date :
2013-12-06 19:32:42 |
By :
เด็กหัดเดิน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้คำสั่ง die('test'); บรรทัดแรกๆ ดูครับ
ปกติน่าจะไม่ค้าง ถ้าค้าอาจจะเกิดจากไฟล์อัพโหลดใหญ่ไปครับ
จากนั้นลองย้าย die('test'); มาบรรทัด ล่างๆ
เพื่อดูว่า คำสั่งส่วนไหนทำให้เกิดอาการค้างครับ
|
|
|
|
|
Date :
2013-12-06 19:41:35 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$objPHPExcel = $objReader->load($inputFileName);
ใส่หลังบรรทัดนี้แล้วค้างเลยครับผม
|
|
|
|
|
Date :
2013-12-06 19:47:14 |
By :
เด็กหัดเดิน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จำนวนแถวใน excel มีเยอะมากไหมครับ
|
|
|
|
|
Date :
2013-12-06 19:56:32 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 บรรทัดครับผม นี้เรียกว่าเยอะไหมครับ
|
|
|
|
|
Date :
2013-12-06 20:01:11 |
By :
เด็กหัดเดิน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่เยอะนะครับนิดเดียวเท่านั้น แต่อาจจะมีปัญหาเรื่อง memory ก็ได้ครับ
ลองลง server ใหม่อย่างเช่น xampp หรือ wamp ดูนะครับ
เพราะ appserv 2.5 ยังใช้ php 5.2 จะมีปัญหาด้าน memory มากกว่า php5.3 ครับ
|
|
|
|
|
Date :
2013-12-06 20:06:30 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วผมสามารถ อัพเดทเป็น php ver อื่นๆได้ไหมครับ ลงแค่ php ไปใหม่อ่ะครับมันจะได้หรือป่าว
|
|
|
|
|
Date :
2013-12-06 20:10:54 |
By :
เด็กหัดเดิน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ครับ download แตกไฟล์ไว้ทับที่เดิม แต่ต้องเลือกเวอร์ชั่นให้ถูกเพราะไฟล์ที่ลงไม่เข้ากับ server ครับ
ลงใหม่สะดวกกว่าโปรแกรมจะแยก folder กันอยู่แล้วครับ เช่น c:\wamp
|
|
|
|
|
Date :
2013-12-06 20:17:29 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับผม ผมลอง อัพเดทเเล้ว มันstart apache ไม่ได้เลยสักอัน Y Y สงสัยต้องลงใหม่ขอบคุณพี่ num มากเลยครับผม
|
|
|
|
|
Date :
2013-12-06 20:39:08 |
By :
เด็กหัดเดิน |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|