Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > เรื่องการนำไฟล์ .csv อัพลง database อะครับ อยากจะทำให้มันเลือกลง table ไหนก็ได้คับ



 

เรื่องการนำไฟล์ .csv อัพลง database อะครับ อยากจะทำให้มันเลือกลง table ไหนก็ได้คับ

 



Topic : 110346



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์




คือผมศึกษาจากลิงค์นี้น้ะครับ https://www.thaicreate.com/php/php-upload-convert-import-csv-to-mysql.html

ถ้าต้องการทำที่เลือกด้วยว่าจะให้ไปลง table ตัวไหนนี้ต้องเขียนยังไงหลอครับบ ที่ผมพิมมานี้ งง มั้ยห้ะ แบบว่า

สมมุติ db ผมมี table ยุ 3 อัน แบบจะให้เลือกลงตัวที่ 1 ที่ 2 หรือที่ 3 เลยนี้ต้องเขียนยังไงอ้ะคับบ

รบกวนช่วยแนะนำหน่อยครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-07-31 15:12:00 By : marchzmello View : 1312 Reply : 15
 

 

No. 1



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


ก็น่าจะประมาณนี้
phpCSVMySQLForm.php
<html>
<head>
<title>ThaiCreate.Com PHP & CSV To MySQL</title>
</head>
<body>
<form action="phpCSVMySQLUpload.php" method="post" enctype="multipart/form-data" name="form1">
  <label for="table_db">กรุณาเลือกตาราง : </label>
  <select name="table_db" id="table_db">
    <option value="tb1">tb1</option>
    <option value="tb2">tb2</option>
    <option value="tb3">tb3</option>
  </select>
  <br>
  <br>
  <input name="fileCSV" type="file" id="fileCSV">
  <input name="btnSubmit" type="submit" id="btnSubmit" value="Submit">
</form>
</body>
</html>


phpCSVMySQLUpload.php
<html>
<head>
<title>ThaiCreate.Com PHP & CSV To MySQL</title>
</head>
<body>
<?PHP
$table_db = $_POST['table_db']; #รับชื่อตารางที่ต้องการเพิ่มข้อมูล
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV

$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("mydatabase");

$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
	$strSQL = "INSERT INTO $table_db ";
	$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
	$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>
</body>
</html>







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-31 15:59:42 By : arm8957
 


 

No. 2



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & CSV To MySQL</title>
</head>
<body>
<?PHP
$table_db = $POST['table_db'];

move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); 

$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("mydatabase");

$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
	$strSQL = "INSERT INTO customer ";
	$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
	$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>
</body>
</html>


ตอนนี้มันเออเร่อบรรทัดนี้อะครับ move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]);
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-01 08:23:52 By : marchzmello
 

 

No. 3



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


คือผมมี db ชื่อว่า mydatabase แล้วใน db นั้นมี table ยุ 3 ตัว ชื่อ customer,customer1,customer2 ซึ่งมีโครงสร้างเหมือนกันอะครับ

อยากให้ .csv เลือกลง table ไหนก็ได้อะคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-01 08:26:05 By : marchzmello
 


 

No. 4



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ก็ตรง Table ที่บอกมานั้น ก็ทำเป็น select เมนู option ให้ เลือก ส่งค่าไปเปลี่ยนแปลงค่าตรง table

กำลังจะเขียน Code กลับไปอ่าน คห.1
คุณ arm8957 เค้าก็ยก ตย. ชัดเจนนี่ครับ

มีการเลือกตารางก่อนทำการ import CSV ก็ชัด ๆ ครับ
ติดตรงไหนอยู่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-01 08:54:08 By : apisitp
 


 

No. 5



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


อันนี้โค๊ดทั้งหมดที่ใช้อะครับ

phpCSVMySQLForm.php
<html>
<head>
<title>Browse CSV</title>
</head>
<body>
<form action="phpCSVMySQLUpload.php" method="post" enctype="multipart/form-data" name="form1">
	<label for="table_db">Select Table : </label>
	<select name="table_db" id="table_db">
    <option value="customer">customer</option>             //ชื่อ table ครับ
    <option value="customer1">customer1</option>
    <option value="customer2">customer2</option>
  </select>
  <br>
  <br>
  <input name="fileCSV" type="file" id="fileCSV">
  <input name="btnSubmit" type="submit" id="btnSubmit" value="Submit">
</form>
</body>
</html>


phpCSVMySQLUpload.php
<html>
<head>
<title>ThaiCreate.Com PHP & CSV To MySQL</title>
</head>
<body>
<?PHP
$table_db = $POST['table_db'];
copy($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
//move_uploaded_file($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]);                ถ้าผมใช้เป็น copy ไม่ error แต่ข้อมูลก้ไม่ได้อัพลง table อะครับ แต่ขึ้นว่า import done 

$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("mydatabase");

$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
	$strSQL = "INSERT INTO customer ";
	$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
	$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>
</body>
</html>


ผมต้องไปเขียนตรงไหนเพิ่มอะครับบบ มือใหม่มากจิงๆ รบกวนแนะนำด้วยฮะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-01 10:12:21 By : marchzmello
 


 

No. 6



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


เรื่องการอัพโหลด แนะนำให้ใช้ move_uploaded_file() นะครับ เพราะมันจะดีกว่า copy() ในเรื่องความปลอดภัย และแนะนำให้เก็บไฟล์ที่อัพโหลดไว้ในโฟล์เดอร์สักโฟล์เดอร์นึงเพื่อความเป็นระเบียบ และจัดการง่ายครับ
แนวทางการปฏิบัติในการแก้ไข คือ
1. สร้างโฟล์เดอร์มาเพื่อเก็บไฟล์ที่อัพโหลด และเซ็ต petmission ให้เป็น 777
2. แก้ไขโค้ดในหน้า phpCSVMySQLUpload.php ตามด้านล่างครับ
3. หากมี error เอา error มาดูครับ

ส่วนโค้ดก็ประมาณนี้
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & CSV To MySQL</title>
</head>
<body>
<?PHP
$table_db = $POST['table_db'];
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],'upload_csv/'.$_FILES["fileCSV"]["name"]); // Copy/Upload CSV

$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("mydatabase");

$objCSV = fopen('upload_csv/'.$_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
	$strSQL = "INSERT INTO $table_db ";
	$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
	$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>
</body>
</html>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-01 14:11:04 By : arm8957
 


 

No. 7



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


พี่ครับ ให้สร้าง folder ไว้ในไหนอะคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-04 14:16:07 By : marchzmello
 


 

No. 8



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


ใน root ครับ ตามตัวอย่างผมตั้งชื่อ upload_csv คุณจะเปลี่ยนเป็นชื่ออื่นก็ได้ครับ ถ้าทดสอบบนเครื่องตัวเองก็ไม่ต้องเซ็ต permission ถ้าบนโฮสก็เซ็ตให้เป็น 777 ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-04 15:38:03 By : arm8957
 


 

No. 9



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


พี่ครับตอนนี้ไม่ขึ้น error ขึ้น Upload & Import Done. แต่ว่าข้อมูลมันไม่ลงใน table ที่เลือกอะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-05 08:36:29 By : marchzmello
 


 

No. 10



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


เขียนสคริปไว้ยังไงครับตอนนี้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-05 09:29:59 By : arm8957
 


 

No. 11



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ไฟล์ phpCSVMySQLUpload.php ผมแก้ตามที่พี่บอกแล้วคับ ละก็ทำการสร้าง folder ที่ root ตอนรันก้ไม่เออเร่อแล้วครับ คิดว่าน่าจะเป็นที่หน้าฟอร์มไฟล์ phpCSVMySQLForm.php มากกว่าอะคับ ไม่ทราบว่าตรงที่ผม คอมเม้นชื่อ table ผมใส่ค่าผิดรึเปล่าอะคับ
echo $table_db ออกมาดูมันไม่มีค่าอะไรเลยอะคับ

phpCSVMySQLForm.php
<html>
<head>
<title>Browse CSV</title>
</head>
<body>
<form action="phpCSVMySQLUpload.php" method="post" enctype="multipart/form-data" name="form1">
	<label for="table_db">Select Table : </label>
	<select name="table_db" id="table_db">
    <option value="customer">customer</option>             //ชื่อ table ครับ
    <option value="customer1">customer1</option>
    <option value="customer2">customer2</option>
  </select>
  <br>
  <br>
  <input name="fileCSV" type="file" id="fileCSV">
  <input name="btnSubmit" type="submit" id="btnSubmit" value="Submit">
</form>
</body>
</html>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-05 09:58:00 By : marchzmello
 


 

No. 12



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


ขอดูหน้านี้ครับ phpCSVMySQLUpload.php
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-05 10:58:39 By : arm8957
 


 

No. 13



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


phpCSVMySQLUpload.php
<html>
<head>
<title>ThaiCreate.Com PHP & CSV To MySQL</title>
</head>
<body>
<?PHP
$table_db = $POST['table_db'];
move_uploaded_file($_FILES["fileCSV"]["tmp_name"],'upload_csv/'.$_FILES["fileCSV"]["name"]);

$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("mydatabase");

$objCSV = fopen($_FILES["fileCSV"]["name"], "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
	$strSQL .= "INSERT INTO $table_db ";
	$strSQL .=" (CustomerID,Name,Email,CountryCode,Budget,Used) ";
	$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>
</body>
</html>


ตามนี้ครับ ขอบคุณมากนะคับที่คอยตอบตลอดเลยยย :')
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-05 11:10:34 By : marchzmello
 


 

No. 14



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


คุณเอาโค้ดไปไม่หมดนี่ครับ เมื่อคุณอัพโหลดไฟล์ CSV ไปเก็บในโฟล์เดอร์ upload_csv เวลาเรียกมาใช้งานก็ต้องระบุพาทให้ถูกด้วย
ผมจะลอง debug แต่ละส่วนดูนะครับ แต่คุณก็ต้องทำความเข้าใจโค้ดแต่ละบรรทัดด้วย ไม่งั้นคุณก็ทำเองไม่ได้
Code
<html> <head> <title>ThaiCreate.Com PHP & CSV To MySQL</title> </head> <body> <?PHP $table_db = $_POST['table_db']; if(empty($table_db)){ exit('ไม่มีชื่อตารางฐานข้อมูลส่งมาครับ ลองเช็คหน้าฟอร์มดูนะครับ'); } else { $upFile = move_uploaded_file($_FILES["fileCSV"]["tmp_name"],'upload_csv/'.$_FILES["fileCSV"]["name"]); if(!$upFile){ exit('ไม่สามารถอัพโหลดไฟล์ได้ครับ ลองดูนะครับว่าได้สร้างโฟล์เดอร์ upload_csv แล้วหรือยัง และระบุพาทถูกต้องหรือไม่'); } else { $objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database"); // Conect to MySQL $objDB = mysql_select_db("mydatabase"); $objCSV = fopen('upload_csv/'.$_FILES["fileCSV"]["name"], "r"); while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) { $strSQL = "INSERT INTO $table_db "; $strSQL .= " (CustomerID,Name,Email,CountryCode,Budget,Used) "; $strSQL .= "VALUES "; $strSQL .= "('".$objArr[0]."','".$objArr[1]."','".$objArr[2]."' "; $strSQL .= ",'".$objArr[3]."','".$objArr[4]."','".$objArr[5]."') "; $objQuery = mysql_query($strSQL) or die(mysql_error()); } fclose($objCSV); echo "Upload & Import Done."; } } ?> </table> </body> </html>



ประวัติการแก้ไข
2014-08-05 11:55:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-05 11:54:52 By : arm8957
 


 

No. 15



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วครับ เป็นเพราะว่าผมระบุพาทไม่ถูกต้องแน่ๆเลย ขอบคุณมากๆนะครับผม อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-05 12:55:33 By : marchzmello
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เรื่องการนำไฟล์ .csv อัพลง database อะครับ อยากจะทำให้มันเลือกลง table ไหนก็ได้คับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่