เนื้อหา txt file รูปแบบนี้จะ import เข้าฐานข้อมูลไม่ได้หรือค่ะ (import จากทางหน้าเว็บ)
พอดีว่าได้ศึกษาเรื่องการ import txt file จากหน้าเว็บ เข้าฐานข้อมูลจากเว็บนี้อยุ่ค่ะ ได้โค้ดออกมาเป็นแบบนี้
หน้าอัพโหลด
Code (PHP)
<form action="phpCSVMySQLUploadAcc.php" method="post" enctype="multipart/form-data" name="form1">
อัพเดทสำหรับหลายๆ เรคคอร์ด <input name="fileCSV" type="file" id="fileCSV">
<input name="btnSubmit" type="submit" id="btnSubmit" value="Update">
</form>
หน้า code php
Code (PHP)
<?
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO co_account";
$strSQL .="(UNIQUE(acc_id),acc_name,acc_type,balance,member_id,emp_name) ";
$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.";
?>
แล้วทีนี้พอเข้าไปลองเทสดู มันก็ขึ้นคำว่า Upload & Import Done
แต่ปรากฎว่าไม่มีอะไรเปลี่ยนแปลงในฐานข้อมูลค่ะ ก็เลยคิดว่ารูปแบบ txt file ของเราอาจจะผิดพลาด ช่วยเช็คให้หน่อยนะคะ
เนื้อหาข้างใน txt file เป็นประมาณนี้ค่ะ
1412320010;บัวชมพู เขียวขจี;ออมทรัพย์;2000.00;m0010;วาสนา รุ่งโรจน์
1412320011;ลิลนี ศรีอัปสร;ฝากประจำ;12000.00;m0011;วาสนา รุ่งโรจน์
1412320012;สุชาติ เกิดดี;ออมทรัพย์;500.00;m0012;วาสนา รุ่งโรจน์Tag : PHP, MySQL
Date :
2011-06-13 12:51:39
By :
Zonza
View :
2791
Reply :
29
Code (PHP)
$objQuery = mysql_query($strSQL) or die(mysql_error());
เอา error มาดูครับ
Date :
2011-06-13 13:34:46
By :
webmaster
มันไม่ขึ้น error อะไรเลยค่ะ นอกจาก "Upload & Import Done"
Date :
2011-06-13 14:24:12
By :
Zonza
เนื้อหาข้างใน txt file เป็นประมาณนี้ค่ะ
1412320010;บัวชมพู เขียวขจี;ออมทรัพย์;2000.00;m0010;วาสนา รุ่งโรจน์
1412320011;ลิลนี ศรีอัปสร;ฝากประจำ;12000.00;m0011;วาสนา รุ่งโรจน์
1412320012;สุชาติ เกิดดี;ออมทรัพย์;500.00;m0012;วาสนา รุ่งโรจน์
อยากทราบว่าไม่สามารถใช้ ; ขั้นข้อความในแต่ละฟิลด์ได้หรือค่ะ เพราะถ้าเอา ; ออก
ก็จะเป็น
1412320010 บัวชมพู เขียวขจี ออมทรัพย์ 2000.00 m0010 วาสนา รุ่งโรจน์
1412320011 ลิลนี ศรีอัปสร ฝากประจำ 12000.00 m0011 วาสนา รุ่งโรจน์
1412320012 สุชาติ เกิดดี ออมทรัพย์ 500.00 m0012 วาสนา รุ่งโรจน์
แล้วแบบนี้ ชื่อกับนามสกุลที่จะให้อยู่ในฟิลด์เดียวกันมันจะได้หรือคะ?
Date :
2011-06-13 14:27:49
By :
Zonza
มันขึ้นว่า Query was empty ค่ะ
Date :
2011-06-13 14:31:15
By :
Zonza
Code (PHP)
$objQuery = mysql_query($strSQL) or die(mysql_error());
echo $strSQL."<br><br>";
ลองดูที่ SQL ครับ
Date :
2011-06-13 14:40:30
By :
webmaster
พอจะเข้าใจแล้วค่ะ ขอลองแก้ดูอีกรอบนะคะ(น่าจะมีปัญหาเรื่องการตัดคำ)
Date :
2011-06-13 14:51:19
By :
Zonza
แย่จังค่ะ ยังไงมันก็ขึ้น Query was empty
โค้ดตามนี้ค่ะ
Code (PHP)
<?
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$date=date("Y-m-d H:i:s");
$objQuery = mysql_query($strSQL) or die(mysql_error());
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$data = fgets($file, 4096);
$objArr = explode("|", $data);
$objArr[6] = $date;
$strSQL = "INSERT INTO co_account";
$strSQL .="(UNIQUE(acc_id),acc_name,acc_type,balance,member_id,emp_name)";
$strSQL .="VALUES ";
$strSQL .="('".""."' ";
$strSQL .=",'".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
$strSQL .=",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."' ";
$strSQL .=",'".$objArr[6]."') ";
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
echo "Upload & Import Done.";
?>
ซึ่งดัดแปลงมาจากโค้ด insert ปกติ แบบนี้ค่ะ
$sql="insert into co_account
values('','$accid','$mmname','$acctype','$money','$memid','$name','$date')";
ในตารางจะมี 8 ฟิลด์ โดยฟิลด์แรกเป็นหมายเลขเรียงแบบอัตโนมัติค่ะ และฟิลด์ที่ 8 เป็นฟิลด์วันที่ ณ ตอนที่อัพเดทค่ะ
ส่วนใน txt file จะมีข้อมูลเฉพาะฟิลด์ที่ 2 ถึง 7 ค่ะ
Date :
2011-06-13 15:15:51
By :
Zonza
ตอบความคิดเห็นที่ : 4 เขียนโดย : Zonza เมื่อวันที่ 2011-06-13 14:27:49
รายละเอียดของการตอบ ::
Code (PHP)
/*
1412320010;บัวชมพู เขียวขจี;ออมทรัพย์;2000.00;m0010;วาสนา รุ่งโรจน์
1412320011;ลิลนี ศรีอัปสร;ฝากประจำ;12000.00;m0011;วาสนา รุ่งโรจน์
1412320012;สุชาติ เกิดดี;ออมทรัพย์;500.00;m0012;วาสนา รุ่งโรจน์
*/
$file="something.csv";
$handle=fopen($file,"r");
if($handle){
while(!feof($handle)){
$line = fgets($handle);
list($id,$fullname,$depositeType,$amount,$code,$officer) = explode(";",$line);
$sql = "insert into ............... values( ..$id,$fullname,$depositeType,$amount,$code,$officer....)";
}
fclose($handle);
}
ประมาณนี้น่ะครับ คงจะพอทำความเข้าใจได้น่ะครับ
ประวัติการแก้ไข 2011-06-13 17:27:19
Date :
2011-06-13 17:25:34
By :
Unidentifier
Code
<?
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$date=date("Y-m-d H:i:s");
$objQuery = mysql_query($strSQL) or die(mysql_error()); // มันจะไม่ empty ได้เยี่ยงไรละครับ ในเมื่ออยู่ดีๆ ก็อยากคิวรี่ซะงั้น
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$data = fgets($file, 4096);
$objArr = explode("|", $data);
$objArr[6] = $date;
$strSQL = "INSERT INTO co_account";
$strSQL .="(UNIQUE(acc_id),acc_name,acc_type,balance,member_id,emp_name)";
$strSQL .="VALUES ";
$strSQL .="('".""."' ";
$strSQL .=",'".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
$strSQL .=",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."' ";
$strSQL .=",'".$objArr[6]."') ";
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
echo "Upload & Import Done.";
?>
Date :
2011-06-13 23:50:26
By :
PlaKriM
1412320010;บัวชมพู เขียวขจี;ออมทรัพย์;2000.00;m0010;วาสนา รุ่งโรจน์
1412320011;ลิลนี ศรีอัปสร;ฝากประจำ;12000.00;m0011;วาสนา รุ่งโรจน์
1412320012;สุชาติ เกิดดี;ออมทรัพย์;500.00;m0012;วาสนา รุ่งโรจน์
Code (PHP)
<?
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$date=date("Y-m-d H:i:s");
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$data = fgets($file, 4096);
list($id,$fullname,$depositeType,$amount,$code,$officer) = explode(";", $data);
/*
UNIQUE(acc_id) => โดยฟิลด์แรกเป็นหมายเลขเรียงแบบอัตโนมัติค่ะ => ไม่ต้องนำมาใส่ในฟิลด์ลิสต์ครับ
*/
$strSQL = "INSERT INTO co_account";
$strSQL .="(acc_name,acc_type,balance,member_id,emp_name,balancedate) ";
$strSQL .="VALUES";
$strSQL .="('$fullname','$depositeType','$amount','$id','$officer','$date') ";
$objQuery = mysql_query($strSQL) or die(mysql_error());
}
fclose($objCSV);
echo "Upload & Import Done.";
?>
ประวัติการแก้ไข 2011-06-14 11:48:14 2011-06-14 11:49:34 2011-06-14 11:55:13 2011-06-14 11:55:59 2011-06-14 11:56:42
Date :
2011-06-14 11:46:29
By :
Unidentifier
จะลองแก้ดูก่อนนะคะ ที่ทำเป็นแบบว่ามีปุ่มให้กด browser ค่ะ เสร็จแล้วก็กดปุ่มอัพเดท
Date :
2011-06-14 18:53:33
By :
Zonza
ขอบคุณทุกๆ ท่านที่เข้ามาช่วยเหลือนะคะ ตัวเราก็ได้นำความรู้และคำแนะนำที่ทุกท่านให้มาศึกษาให้เข้าใจมากที่สุดค่ะ สรุปว่า path ไม่ตรงจริงๆ ด้วยค่ะ(ใส่ชื่อตัวแปรที่รับค่ามาผิดค่ะ) แต่มันเหมือนจะอ่านไฟล์ได้แล้วค่ะ แต่มันขึ้นซินแท็คเออเรอร์ค่ะ แล้วก็หาไม่เจอค่ะว่าพลาดตรงไหน ตาลายหมดแล้ว ขอความกรุณาช่วยดูให้อีกหน่อยนะคะ
ข้อความเออเรอร์ค่ะ
Code
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNIQUE(acc_id),acc_name,acc_type,balance,member_id,emp_name)VALUES ('1412320011'' at line 1
Code (PHP)
<?
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$date=date("Y-m-d H:i:s");
//$objQuery = mysql_query($strSQL) or die(mysql_error());
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$data = fgets($objCSV, 4096);
list($objArr[0],$objArr[1],$objArr[2],$objArr[3],$objArr[4],$objArr[5]) = explode(";", $data);
//$objArr = explode("|", $data);
$objArr[6] = $date;
$strSQL = "INSERT INTO co_account";
$strSQL .="(UNIQUE(acc_id),acc_name,acc_type,balance,member_id,emp_name)";
$strSQL .="VALUES ";
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
$strSQL .=",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."' ";
$strSQL .=",'".$objArr[6]."') ";
$objQuery = mysql_query($strSQL) or die(mysql_error());
}
fclose($objCSV);
echo "Upload & Import Done.";
?>
Date :
2011-06-14 19:20:42
By :
Zonza
ตอบคุณ mr.win
UNIQUE(acc_id) ----> อันนี้ลบ UNIQUE ทิ้งไปแล้วค่ะ ตอนแรกกะจะให้มันบันทึกเลขบัญชีโดยไม่ให้ซ้ำกันน่ะค่ะ แต่คิดได้ว่าคงคิดตื้นไปหน่อย ส่วนการอัพเดต ได้แล้วนะคะ ข้อมูลเพิ่มเข้าไปในฐานข้อมูลได้แล้วค่ะ แต่มีปัญหาค่ะ คือว่าข้อมูลเข้าไปไม่ครบ บางเรคคอร์ดไม่มี และบางฟิลด์ข้อมูลไม่มี สังเกตได้ว่าฟิลด์ที่มันกลายเป็นว่างเปล่าจะเป็นข้อมูลภาษาไทยค่ะ เช่นเรคคอร์ดที่ 1 หายไป เพิ่มมาอีกทีเป็นเรคคอร์ดที่สองเลย แล้วในเรคคอร์ดนี้ ข้อมูลในฟิลด์ ชื่อ ประเภทบัญชี และเจ้าหน้าที่ มันว่างเปล่าค่ะ ไม่มีข้อมูล
Date :
2011-06-14 21:24:50
By :
Zonza
ลืมโค้ดค่ะ
Code (PHP)
<?
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$date=date("Y-m-d H:i:s");
//$objQuery = mysql_query($strSQL) or die(mysql_error());
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$data = fgets($objCSV, 4096);
list($objArr[0],$objArr[1],$objArr[2],$objArr[3],$objArr[4],$objArr[5]) = explode(";", $data);
//$objArr = explode("|", $data);
$objArr[6] = $date;
$strSQL = "INSERT INTO co_account";
$strSQL .="(acc_id,acc_name,acc_type,balance,member_id,emp_name,date)";
$strSQL .="VALUES ";
//$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
//$strSQL .=",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."' ";
//$strSQL .=",'".$objArr[6]."') ";
$strSQL .="('$objArr[0]','$objArr[1]','$objArr[2]','$objArr[3]','$objArr[4]','$objArr[5]','$objArr[6]')";
$objQuery = mysql_query($strSQL) or die(mysql_error());
}
fclose($objCSV);
echo "Upload & Import Done.";
?>
Date :
2011-06-14 21:25:38
By :
Zonza
ลืมบอกไปอีกอย่างค่ะ ตรงฟิลด์ id ที่เป็นแบบ auto_increment มันก็ไม่เรียงให้ด้วยค่ะ เวลาอิมพอร์ตเข้าไปใหม่ ปกติเพิ่มข้อมูลทีละคนผ่านหน้าเว็บมันก็จะเรียงให้ เป็น 1,2,3 ประมาณนี่ค่ะ มันเกี่ยวกับที่มีการลบข้อมูลในฐานข้อมูลบ่อยหรือเปล่าคะ การเรียงข้อมูลเลยเพี้ยนไป แล้วจะแก้ไขอย่างไรดีคะ
Date :
2011-06-14 21:34:09
By :
Zonza
1.) เวลาลบข้อมูลทั้งตาราง ให้ใช้คำสั่งนี้ครับ
TRUNCATE [TABLE] tbl_name เช่น truncate table co_account;
ทีนี้เวลาเพิ่มข้อมูลเข้าไปใหม่ฟิลด์ที่เพิ่มค่าอัตโนมัติก็จะถูกรีเซ็ตกลับไปเริ่มต้นที่ 1 อีกครั้งครับ
2.) ทำไมใช้ตัวแปรประเภทอาร์เรย์กับ ฟังก์ชั่น list() ล่ะครับ
list($objArr[0],$objArr[1],$objArr[2],$objArr[3],$objArr[4],$objArr[5]) = explode(";", $data); [/color]=>ผิดครับแต่ไม่ error-none sense
[color=blue]$objArr = explode(";" , $data) =>อันนี้ถูกวิธีครับ ประหยัดโค้ด
Code (PHP)
$strSQL = "INSERT INTO co_account";
$strSQL .="(acc_id,acc_name,acc_type,balance,member_id,emp_name,date)";
$strSQL .="VALUES ";
$strSQL .="('$objArr[0]','$objArr[1]','$objArr[2]','$objArr[3]','$objArr[4]','$objArr[5]','$objArr[6]')";
จากโค้ดข้างบนผมอยากให้ echo $strSQL; ออกมาดูหน่อย หรืออาจจะลองตามผมอีกแบบน่ะครับ เพิ่ม {} ครอบตัวแปรไว้
Code (PHP)
$strSQL = "INSERT INTO co_account";
$strSQL .="(acc_id,acc_name,acc_type,balance,member_id,emp_name,date)";
$strSQL .="VALUES ";
$strSQL .="('{$objArr[0]}','{$objArr[1]}','{$objArr[2]}','{$objArr[3]}','{$objArr[4]}','{$objArr[5]}','{$objArr[6]}')";
ปล. ถามนิดนึงน่ะครับ ทำไมถึงพยายามใช้ตัวแปรประเภทอาร์เรย์กลับงานง่ายๆ ซึ่งกลับทำให้เป็นงานยาก
Code (PHP)
list($id,$fullname,$depositeType,$amount,$code,$officer) = explode(";", $data);
....
.....
$strSQL = "INSERT INTO co_account";
$strSQL .="(acc_name,acc_type,balance,member_id,emp_name,balancedate) ";
$strSQL .="VALUES";
$strSQL .="('$fullname','$depositeType','$amount','$id','$officer','$date') ";
Date :
2011-06-14 22:34:49
By :
Unidentifier
ขอตอบคุณ Unidentifer ค่ะ คือว่าความจริงก็ไม่ค่อยจะเข้าใจมากค่ะ เพียงแต่อาศัยหาดูกระทู้เก่าๆ แล้วก็เอาคำแนะนำของแต่ละท่านมาปรับใช้น่ะค่ะ โค้ดเลยจะแม่งๆ หน่อยค่ะ แหะๆๆ แล้วอีกอย่างก็เห็นว่า txt file ที่จะใช้อัพโหลดมีข้อมูลเยอะหลายเรคคอร์ด เลยนึกถึงแต่อาเรย์อย่างเดียวค่ะ ไม่รู้ว่าจะใช้อะไรอย่างไหนได้บ้าง ยังไงก็ขอคำแนะนำด้วยนะคะ
ประวัติการแก้ไข 2011-06-15 00:37:03
Date :
2011-06-15 00:33:08
By :
Zonza
ลองทำตามที่คุณ Unidentifer บอกแล้วได้แบบนี้ค่ะ
ค่าที่ echo ออกมาค่ะ
Upload & Import Done.
INSERT INTO co_account(acc_id,acc_name,acc_type,balance,member_id,emp_name,date)VALUES (' ','','','','','','2011-06-15 01:42:37')
ส่วนในฐานข้อมูลก็เหมือนเดิมค่ะ ทั้งหมดมีข้อมูล 15 เรคคอร์ด แต่บันทึกลงฐานข้อมูลแค่ 8 เรคคอร์ดค่ะ และข้อมูลที่เป็นภาษาไทยไม่บันทึกให้เลยค่ะ
โค้ดค่ะ
Code (PHP)
<?
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
$date=date("Y-m-d H:i:s");
//$objQuery = mysql_query($strSQL) or die(mysql_error());
$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$data = fgets($objCSV, 4096);
$objArr = explode(";" , $data);
//$objArr = explode("|", $data);
$objArr[6] = $date;
$strSQL = "INSERT INTO co_account";
$strSQL .="(acc_id,acc_name,acc_type,balance,member_id,emp_name,date)";
$strSQL .="VALUES ";
//$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' ";
//$strSQL .=",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."' ";
//$strSQL .=",'".$objArr[6]."') ";
$strSQL .="('{$objArr[0]}','{$objArr[1]}','{$objArr[2]}','{$objArr[3]}','{$objArr[4]}','{$objArr[5]}','{$objArr[6]}')";
$objQuery = mysql_query($strSQL) or die(mysql_error());
}
fclose($objCSV);
echo "Upload & Import Done.";
echo $strSQL;
?>
ปล. ขอบคุณทุกๆ คนมากเลยนะคะ สำหรับคำแนะนำและความช่วยเหลือ ตอนนี้ขออนุญาตไปนอนก่อนนะคะ พรุ่งนี้มีเรียนแต่เช้าค่ะ แก้ได้ไม่ได้อย่างไร จะแวะเข้ามาใหม่นะคะ^^
ประวัติการแก้ไข 2011-06-15 00:49:10
Date :
2011-06-15 00:48:17
By :
Zonza
ช่วยเอาข้อความที่อยู่ในไฟล์ CSV มาให้ดูหน่อยครับ สักสิบหรือยี่สิบบรรทัดน่ะครับ
และเอาโค้ดที่เป็นหน้าฟอร์มอัพโหลดมาดูก็จะดีมากครับ คงจะช่วยหาที่ผิดได้มากกว่านี้ครับ
ปล. ลองเอา echo $strSQL; ไปใส่ในลูป while ดูน่ะครับ จะได้เห็นทุกเสตทเมนท์ที่ถูกเรียกให้ทำงาน
ประวัติการแก้ไข 2011-06-15 09:55:00
Date :
2011-06-15 09:51:41
By :
Unidentifier
โค้ดที่เสร็จสมบูรณ์ครับ เอาไปใช้ได้เลย ทุกอย่างอยู่ในไฟล์เดียวครับ
Code (PHP)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Conforming HTML 4.01 Transitional Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="fileCSV" id="file" />
<br />
<input type="submit" name="UpLoading" value="อัพโหลดไฟล์ค่ะ" />
</form>
<?
if(isset($_POST["UpLoading"]) && !empty($_FILES["fileCSV"]["tmp_name"])){
//move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
if ($_FILES["fileCSV"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["fileCSV"]["name"] . "<br />";
echo "Type: " . $_FILES["fileCSV"]["type"] . "<br />";
echo "Size: " . ($_FILES["fileCSV"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["fileCSV"]["tmp_name"],"<hr />\n";
}
$date=date("Y-m-d H:i:s");
$objCSV = fopen($_FILES["fileCSV"]["tmp_name"], "r");
while (!feof($objCSV)) {
$data = fgets($objCSV);
if(!empty($data)){
$objArr = explode(";", $data);
$strSQL = "INSERT INTO co_account";
$strSQL .="(acc_id,acc_name,acc_type,balance,member_id,emp_name,date)";
$strSQL .="VALUES ";
$strSQL .="('$objArr[0]','$objArr[1]','$objArr[2]','$objArr[3]','$objArr[4]','$objArr[5]','$date')";
//$objQuery = mysql_query($strSQL) or die(mysql_error());
echo $strSQL,"<br />\n";
}
}
fclose($objCSV);
echo "<h3 style=\"color:red;\">Upload & Import Done.</h3>";
}
?>
</body>
</html>
Date :
2011-06-15 10:32:24
By :
Unidentifier
<div align="justify"> => ตัดแท็ค div ออกน่ะครับ อยู่บรรทัดแรก และบรรทัดสุดท้าย
</html></div>
ส่วนนี่ก็ผลลัพธ์ครับ ปล.ถ้าต้องการให้บันทึกลงฐานข้อมูลก็เอา คอมเมนท์หน้า mysql_query() ออกน่ะครับ
Upload: test2.csv
Type: text/csv
Size: 0.4072265625 Kb
Stored in: /tmp/phpAdxtep INSERT INTO co_account(acc_id,acc_name,acc_type,balance,member_id,emp_name,date)VALUES ('1412320010','บัวชมพู เขียวขจี','ออมทรัพย์','2000.00','m0010','วาสนา รุ่งโรจน์ ','2011-06-15 10:29:57')
INSERT INTO co_account(acc_id,acc_name,acc_type,balance,member_id,emp_name,date)VALUES ('1412320011','ลิลนี ศรีอัปสร','ฝากประจำ','12000.00','m0011','วาสนา รุ่งโรจน์ ','2011-06-15 10:29:57')
INSERT INTO co_account(acc_id,acc_name,acc_type,balance,member_id,emp_name,date)VALUES ('1412320012','สุชาติ เกิดดี','ออมทรัพย์','500.00','m0012','วาสนา รุ่งโรจน์ ','2011-06-15 10:29:57')
Upload & Import Done.
ประวัติการแก้ไข 2011-06-15 10:36:22 2011-06-15 10:39:07
Date :
2011-06-15 10:34:32
By :
Unidentifier
อ๋อ ไม่อะครับที่ผมทำเป็น โค้ดที่ ดึง Files จาก Folder โดยตรง ไม่ต้องนำ ไฟล์ ไปเก็บใน ฐานข้อมูล ครับ
มันปรมาณว่าเป็นเงื่อนไขในการเขียนโค้นอะครับ
โดยมีโจทย์ว่า
1 เพิ่ม ไฟล์ ลงใน Folder ได้
2 ต้องแสดง นามสกุลไฟล์
3 ละต้องลบไฟล์ใน Folder ได้ ในที่นี้ ผมให้มันประกาศชื่อไฟล์ที่จะลบก่อนถึง ลบไฟล์ นั้นอะครับ
ประมานนี้อะครับ
ปล. ครับพึ่งนึกมาได้อีกครับ
ถ้าผมไม่อยากให้รูป/ไฟล์ที่อัพ มันซ้ำกัน ผมต้องเพิ่ม Code ส่วนไหน ได้บ้างครับ
Date :
2011-06-15 11:01:52
By :
ลูnLต่า
ขอโทดด้วยครับผม
Date :
2011-06-15 11:17:44
By :
ลูnLต่า
ขอบคุณ คุณ Unidentifer มากๆ เลยค่ะ ตอนแรกเป็นเหมือนเดิมค่ะ คืออัพเดทได้แล้ว แต่ค่าที่เป็นภาษาไทยมันไม่ขึ้นให้ แต่นึกขึ้นได้ค่ะ ว่า save text file เป็น ANSI ไว้ ก็เลยลองเปลี่ยนเป็น UTF-8 ดู สรุปว่า ผ่านแล้วค่ะ บันทึกได้ทุกค่าแล้ว ดีใจมากเลย ขอคุณนะคะ
Date :
2011-06-15 16:54:50
By :
Zonza
ไม่เป็นไรครับ ขอให้สนุกกับการเรียนน่ะครับ อย่าท้อน่ะครับ ยังมีพี่ๆน้องๆที่คอยช่วยเหลืออีกมากมายครับ
จบแล้วก็ทำงานเป็นโปรแกรมเมอร์ด้วยล่ะ จะได้ใช้ความรู้ที่เรียนมาให้เป็นประโยชน์
Date :
2011-06-15 22:27:18
By :
๊Unidentifier
Load balance : Server 01