สอบถามเพื่อน ๆ พี่ ๆ เรื่องการ Import excel to MySQL DB ข้อมูลเข้าตามทีต้องการแล้ว แต่.. วันที่เป็น 0000-00-00(Year-Month-Day)
Import ข้อมูลได้ตามปรกติ แต่วันที่กลายเป็น 0000-00-00(Year-Month-Day) ผมลองเปลี่ยน Type ใน Excel แล้วยังเหมือนเดิมครับ
รบกวนพี่ ๆ เพื่อน ช่วยดูให้หน่อยครับ
Code Import excel :
Code (PHP)
<?php
if($_POST['submit']){
function MultiUploadimage($FileUpload,$tmps,$oldpic,$directory){
$path = $directory;
$rand = substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789'),0,15);
if(trim($tmps) != ""){
@unlink($path."/".$oldpic);
$images = $FileUpload;
$tmp = $tmps;
$new_images = $rand.'-'.$FileUpload;
move_uploaded_file($tmp,$path."/".$new_images);
}else{
$images = $oldpic;
$new_images = $images;
}
return $new_images;
}
$FileUpload = trim($_FILES["FileUpload"]["name"]);
$tmps = $_FILES["FileUpload"]["tmp_name"];
$oldpic = '';
$directory = "MyXls";
$newimages = MultiUploadimage($FileUpload,$tmps,$oldpic,$directory);
//*** Get Document Path ***//
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp
$OpenFile = "MyXls/".$newimages;
//*** Create Exce.Application ***//
$xlApp = new COM("Excel.Application");
$xlBook = $xlApp->Workbooks->Open($strPath."/".$OpenFile);
$xlSheet1 = $xlBook->Worksheets(1);
//*** Insert to MySQL Database ***//
$objConnect = mysql_connect("localhost","root","123456") or die("Error Connect to Database");
$objDB = mysql_select_db("bki_edi");
for($i=2;$i<=10;$i++){
If(trim($xlSheet1->Cells->Item($i,1)) != "")
{
$strSQL = "";
$strSQL .= "INSERT INTO tbpo ";
$strSQL .= "(`Vendor`, `Order_Date`, `PO`, `Line`, `Seq`, `Item`, `Description`, `Qty_Order`, `Unit`, `Unit_Cost`, `Amount`, `Due_Date`, `Del_No`, `Loc`, `Incharge`, `Firm`) ";
$strSQL .= "VALUES ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,1)."','".$xlSheet1->Cells->Item($i,2)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,3)."','".$xlSheet1->Cells->Item($i,4)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,5)."','".$xlSheet1->Cells->Item($i,6)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,7)."','".$xlSheet1->Cells->Item($i,8)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,9)."','".$xlSheet1->Cells->Item($i,10)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,11)."','".$xlSheet1->Cells->Item($i,12)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,13)."','".$xlSheet1->Cells->Item($i,13)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,15)."','".$xlSheet1->Cells->Item($i,14)."' )";
mysql_query($strSQL) or die (mysql_error());
}
}
echo "<script>alert('Import excel data successful.')</script>";
//*** Close MySQL ***//
@mysql_close($objConnect);
//*** Close & Quit ***//
$xlApp->Application->Quit();
$xlApp = null;
$xlBook = null;
$xlSheet1 = null;
}
?>
Tag : PHP, JavaScript, Windows
Date :
2013-11-22 13:37:47
By :
TotEcom
View :
883
Reply :
8
เปลี่ยน dateformat ครับ
Date :
2013-11-22 13:47:17
By :
mangkunzo
พี่ ๆครับ Code ใช้แปลงได้ครับ
Code (PHP)
$var = '19/11/2013';
$date = str_replace('/', '-', $var);
echo date('Y-m-d', strtotime($date));
แต่ผมไม่รู้จะต้องใส่ยังไงครับ ขอ Code ให้ดูหน่อยครับพี่ เพราะต้องใส่เป็น Array ที่อ้างอิง Cells ครับ ขอบคุฯล่วงหน้าครับ
Code (PHP)
for($i=2;$i<=10;$i++){
If(trim($xlSheet1->Cells->Item($i,1)) != "")
{
$strSQL = "";
$strSQL .= "INSERT INTO tbpo ";
$strSQL .= "(`Vendor`, `Order_Date`, `PO`, `Line`, `Seq`, `Item`, `Description`, `Qty_Order`, `Unit`, `Unit_Cost`, `Amount`, `Due_Date`, `Del_No`, `Loc`, `Incharge`, `Firm`) ";
$strSQL .= "VALUES ";
$strSQL .= "('".$xlSheet1->Cells->Item($i,1)."','".$xlSheet1->Cells->Item($i,2)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,3)."','".$xlSheet1->Cells->Item($i,4)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,5)."','".$xlSheet1->Cells->Item($i,6)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,7)."','".$xlSheet1->Cells->Item($i,8)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,9)."','".$xlSheet1->Cells->Item($i,10)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,11)."','".$xlSheet1->Cells->Item($i,12)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,13)."','".$xlSheet1->Cells->Item($i,13)."' ";
$strSQL .= ",'".$xlSheet1->Cells->Item($i,15)."','".$xlSheet1->Cells->Item($i,14)."' )";
mysql_query($strSQL) or die (mysql_error());
}
}
Date :
2013-11-22 13:55:55
By :
TotEcom
ถ้าผมจะ Convert Date ที่เป็น Array ผมต้องทำอย่างไรครับ
Date :
2013-11-23 10:10:42
By :
TotEcom
Date ที่เป็น Array มันเป็นยังไงอ่ะครับ
Date :
2013-11-23 10:37:07
By :
{Cyberman}
ผมลองแปลง Date แล้วมันจะเป็น 1970-01-01 ครับ
Code (PHP)
$str_date = "'".$xlSheet1->Cells->Item($i,2)."'"; //???????????????????????
$str_date = date("Y-m-d",strtotime(str_replace('/', '-',$str_date))); //???????????????????? Function ?????????????????????????
echo $str_date; //??????????? 2012-10-10
echo "</br>";
ประวัติการแก้ไข 2013-11-23 13:48:12
Date :
2013-11-23 13:45:44
By :
TotEcom
ถ้าจำไม่ผิดวันที่ที่อ่านจากไฟล์ Excel จะเป็นตัวเลขล้วนที่ จะต้องใช้ฟังก์ชั่นของไลบรารี่แต่ละตัวแปลงฟอแมตนะครับ
Date :
2013-11-23 14:44:45
By :
{Cyberman}
คุณ PHP's Friend ช่วยเขียน Code ให้ดูเป็นตัวอย่างหน่อยได้ไหมครับ
Date :
2013-11-23 16:17:47
By :
TotEcom
ต้องแปลงยังไงครับผมไม่เข้าใจครับ
Date :
2013-11-25 10:28:42
By :
TotEcom
Load balance : Server 04