ถ้าจะ Import File CSV เข้าฐานข้อมูลแต่หลาย Table จะเขียนโค้ดเพิ่มยังไงครับขอตัวอย่างหน่อยครับ
คือผมมีไฟล์ CSV ที่ Export ออกมาจากโปรแกรมอื่นครับ ผมต้องการจะให้ข้อมูลเข้าตามฐานข้อมูลที่มีครับ TB_A,TB_B,TB_C รบกวนขอตัวอย่างหน่อยครับเพื่อเป็นแนวทาง
ตัวอย่างไฟล์ครับ
โค้ดนี้ Import File เข้าฐานข้อมูลแค่ TB_A อันเดียวครับ
Code
<?php
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("production_total");
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO tb_A ";
$strSQL .="(id,Date,Sales,Payout,percent,Save) ";
$strSQL .="VALUES ";
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
$strSQL .=",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."' ";
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
echo "Upload & Import Done.";
?>
</table>
Tag : PHP, MySQL
Date :
2017-09-26 17:13:01
By :
Lun2560
View :
2378
Reply :
9
แค่ตัวอย่างก็ไม่สัมพันธ์กันแล้ว ตาราง a เห็นแค่ 4 คอลัมน์
ทำไมถึง insert 6 คอลัมน์ ได้ 0-5
เอาเป็นว่า 6 คอลัมน์ก็แล้วกัน
Code (PHP)
$strSQL_A = "INSERT INTO tb_A (id,Date,Sales,Payout,percent,Save) VALUES ";
$strSQL_B = "INSERT INTO tb_B (id,Date,Sales,Payout,percent,Save) VALUES ";
$first_rec = true;
while (($ar = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL_A .=($first_rec? '', ',')."('".$ar[0]."','".$ar[1]."','".$ar[2]."','".$ar[3]."','".$ar[4] ."','".$ar[5] ."' ";
$strSQL_B .=($first_rec? '', ',')."('".$ar[6]."','".$ar[7]."','".$ar[8]."','".$ar[9]."','".$ar[10]."','".$ar[11]."' ";
$first_rec=false;
}
$objQuery = mysql_query($strSQL_A);
$objQuery = mysql_query($strSQL_B);
ประวัติการแก้ไข 2017-09-27 09:34:03
Date :
2017-09-26 20:12:40
By :
Chaidhanan
หมายถีง csv ที่แสดงผล คอลัมน์ มันอ้างอิง field ไหน ดูให้ถูกนะครับ
ผมแก้โค๊ดที่คห 2 นิดหน่อย ลองประยุกต์ ดูครับ
Date :
2017-09-27 09:35:58
By :
Chaidhanan
พี่ Chaidhanan หรือพี่คนไหนที่มีเวลา ผมรบกวนหน่อยครับ คือผมมีไฟล์ที่เป็น .CSV แบบนี้ละครับจะเพิ่มยังไงครับ
ในดาต้าเบจผมจะให้เก็บ
Tabledata
AAA
BBB
CCC
DDD ไปถึง VVV แบบนี้ได้ไหมครับ
อันนี้ไฟล์ที่ที่เป็น .CSV ครับ
Date :
2017-09-29 15:11:58
By :
เด็กก่อสร้าง
ฐานข้อมูลเก็บแบบนี้ครับไม่รู้ถูกไหม คือจุดประสงค์คือต้องการ Import File เข้าดาต้าเบจแล้วดึงข้อมูลยอดรวมแต่ละวันออกมาโชว์เฉยๆครับ
Date :
2017-09-29 15:38:03
By :
เด็กก่อสร้าง
ตารางออกแบบถูกหรือเปล่า เบื้องต้นก็ต้องบอกว่าใช้ได้ครับ แต่ควรตั้งชื่อให้สื่อความหมายของข้อมูลด้วย
เช่น
A_machine
B_shift
C_department
......
เวลานำเข้า เอาเฉพาะบันทัดที่เป็นข้อมูลจริงๆ เข้า(5-8, 15-18)
ก็ใช้ if ตรวจสอบว่าเป็น บันทัดใช้งานหรือไม่ ค่อยนำเข้า db
Code (PHP)
if( preg_match('/^[A-Z0-9]*$/',$cell(0)){
//insert
}
Date :
2017-09-29 16:24:10
By :
Chaidhanan
พอดีติดตรงนี้เหมือนกันค่ะพี่รบกวนขอโค้ดตัวอย่างแบบใช้งานจริงได้ไหมคะ ขอบคุณค่ะ
Date :
2017-10-02 08:46:25
By :
แอม
ตอบความคิดเห็นที่ : 7 เขียนโดย : แอม เมื่อวันที่ 2017-10-02 08:46:25
รายละเอียดของการตอบ ::
ลองเอาโค้ดนี้ไปใช้ดูครับผมลองแล้วได้
Code
<html>
<head>
<title>Test PHP & CSV To MySQL</title>
<!--<meta http-equiv=Content-Type content="text/html; charset=tis-620"> -->
</head>
<body>
<?php
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$objConnect = mysql_connect("localhost","root","") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("test");
mysql_query("SET NAMES TIS620");
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO test_a ";
$strSQL .="(AAA,BBB,CCC,DDD,EEE,FFF,GGG,HHH,III,JJJ,KKK,LLL,MMM,NNN,OOO,PPP,QQQ,RRR,SSS,TTT,UUU,VVV) ";
$strSQL .="VALUES ";
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
$strSQL .=",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."' ";
$strSQL .=",'".$objArr[6]."','".$objArr[7]."','".$objArr[8]."' ";
$strSQL .=",'".$objArr[9]."','".$objArr[10]."','".$objArr[11]."' ";
$strSQL .=",'".$objArr[12]."','".$objArr[13]."','".$objArr[14]."' ";
$strSQL .=",'".$objArr[15]."','".$objArr[16]."','".$objArr[17]."' ";
$strSQL .=",'".$objArr[18]."','".$objArr[19]."','".$objArr[20]."','".$objArr[21]."') ";
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
echo "อัพโหลดไฟล์เข้าฐานข้อมูลสำเร็จ !!!";
?>
</table>
</body>
</html>
Date :
2017-10-05 10:23:39
By :
Lun2560
Load balance : Server 04