|
|
|
รบกวนดูโค้ดให้หน่อยค่ะ อ่านไฟล์ CSV แล้ว Error นะคะ |
|
|
|
|
|
|
|
รบกวนดูโค้ดให้หน่อยค่ะ พอดีรันแล้วมัน error ตามนี้นะคะ และอยากทราบว่าถ้าต้องการเขียนเช้คนะคะ ในไฟล์ csv จะประกอบไปด้วยตารางดังนี้ # day table,# country table ถ้าต้องการเช็คว่าถ้าทำตาราง # day table เสร็จแล้วอ่านไปเจอ # country table ก็ให้แอดลงอีกตารางนึงนะคะ
Code
Fatal error: Uncaught exception 'Exception' with message 'Invalid cell coordinate CONTENT_TYPE3' in C:\AppServ\www\Read\Classes\PHPExcel\Cell.php:508 Stack trace: #0 C:\AppServ\www\Read\Classes\PHPExcel\Worksheet.php(959): PHPExcel_Cell::coordinateFromString('CONTENT_TYPE3') #1 C:\AppServ\www\Read\read_csv.php(19): PHPExcel_Worksheet->getCell('content_type3') #2 {main} thrown in C:\AppServ\www\Read\Classes\PHPExcel\Cell.php on line 508
Code (PHP)
<?
include ("Classes/PHPExcel.php"); //include เข้ามาก่อน
// Read CSV
$objReader = new PHPExcel_Reader_CSV();// สร้าง object ของ Class PHPExcel_Reader_CSV
$objReader->setInputEncoding('CP1252');// กำหนดค่าต่างตามนี้
$objReader->setDelimiter(',');
$objReader->setEnclosure('');
$objReader->setLineEnding("\r\n");
$objReader->setSheetIndex(0);
$objReader->setInputEncoding('UTF-8');
$objPHPExcel = $objReader->load("test_report.csv"); //<====File Path
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$strSql = "INSERT INTO test(day,content_type,policy,embed_views,watch_views,youtube_sold_revenue,partner_sold_revenue,afv_revenue,amount_payable,estimated_rpm) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')"; //<======= SQL
//วนลูบดึงข้อมูลมาสร้างคำสั่ง SQL แต่ยังไม่คิวรี่นะ
for($i=3; $i<=$objWorksheet->getHighestRow(); $i++){// $i=2 คือให้เริ่มอ่านข้อมูลจากไฟล์บรรทัดที่2 บรรทัดแรกเป็นหัวคอลัมน์ครับ
$strSql .= "('".$objWorksheet->getCell('day'.$i)->getValue()." ',";
$strSql .= "('".$objWorksheet->getCell('content_type'.$i)->getValue()." ',";
$strSql .= "('".$objWorksheet->getCell('policy'.$i)->getValue()." ',";
$strSql .= "('".$objWorksheet->getCell('embed_views'.$i)->getValue()." ',";
$strSql .= "('".$objWorksheet->getCell('watch_views'.$i)->getValue()." ',";
$strSql .= "('".$objWorksheet->getCell('youtube_sold_revenue'.$i)->getValue()." ',";
$strSql .= "('".$objWorksheet->getCell('partner_sold_revenue'.$i)->getValue()." ',";
$strSql .= "('".$objWorksheet->getCell('afv_revenue'.$i)->getValue()." ',";
$strSql .= "('".$objWorksheet->getCell('amount_payable'.$i)->getValue()." ',";
$strSql .= " '".$objWorksheet->getCell('estimated_rpm'.$i)->getValue()." '),";
}
$strSql = substr($strSql,0,strlen($strSql)-1);// ตัดเครื่องหมาย , ออก
$objPHPExcel->disconnectWorksheets();
// มาคิวรี่ตรงนี้ทีเดียวเลยครับ
// connect Database ให้เรียบร้อยแล้วคิวรี่ซะ
mysql_query($strSql)or die(mysql_error());
?>
ไฟล์ CSV
# day table
day content_type policy embed_views watch_views youtube_sold_revenue partner_sold_revenue afv_revenue amount_payable estimated_rpm
20121201 commercial block 0 25 0 0 0 0
20121202 commercial block 0 36 0 0 0.098994 0.049002
20121203 commercial block 1 46 0.006983 0 0 0.002513
20121204 commercial block 0 13 0 0 0 0
20121205 commercial block 0 26 0 0 0 0
20121206 commercial block 3 41 0 0 0 0
# country table
country content_type policy embed_views watch_views youtube_sold_revenue partner_sold_revenue afv_revenue amount_payable estimated_rpm
DE commercial block 17 852 0.020457 0 0.098994 0.056365
TH commercial block 0 1 0 0 0 0
AD commercial free 0 3 0 0 0 0
AF commercial free 2 4 0 0 0 0
# grand total table
embed_views watch_views ad_enabled_views youtube_sold_revenue partner_sold_revenue afv_revenue amount_payable estimated_rpm
2115956 82392993 8391538 2000.553765 0 16669.81778 8984.627104 1.07
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2013-03-15 15:56:23 |
By :
ฟ้า |
View :
1039 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่านแค่ csv ทำไมไม่ใช้ function fgetcsv() ครับ
|
|
|
|
|
Date :
2013-03-15 16:06:10 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณนะคะ แต่ไม่ใช่แค่อ่านไฟล์ csv นะคะ จะแอดเข้าฐานข้อมูลด้วยค่ะ
|
|
|
|
|
Date :
2013-03-15 16:50:01 |
By :
ฟ้า |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นั่นแหละครับ ให้ใช้ function ของ fgetcsv
Code (PHP)
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database"); // Conect to MySQL
$objDB = mysql_select_db("mydatabase");
$objCSV = fopen("customer.csv", "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 "Import Done.";
?>
|
|
|
|
|
Date :
2013-03-15 16:56:15 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|