saba_kamali
پنج شنبه 01 آبان 1393, 00:16 صبح
سلام
من یه فایل Excel با داده های فارسی رو ، توسط کلاس PHPExcel توی دیتابیس ایمپورت کردم
و این داده ها به همون شکل فارسی توی دیتابیس ذخیره شدند. ولی وقتی که میخام این اطلاعات
رو نمایش بدم ،داده ها رو به شکل علامت سوال نشون میده.
میشه لطفا کمکم کنید که چکار کنم تا اطلاعات درست نمایش داده بشن؟؟
کدی هم که برای ذخیره اطلاعات استفاده کردم این بود:
<?php
require_once 'PHPExcel.php';
$objReader = new PHPExcel_Reader_Excel2007();
$objPHPExcel = $objReader->load('book.xlsx');
$rowIterator = $objPHPExcel->getActiveSheet()->getRowIterator();
$skip_rows = 0;
$excell_array_data = array();
foreach($rowIterator as $row){
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
if($skip_rows >= $row->getRowIndex ()) continue;
$rowIndex = $row->getRowIndex ();
$excell_array_data[$rowIndex] = array();
foreach ($cellIterator as $cell) {
$excell_array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
}
}
$link = @mysql_connect('localhost', 'root', '');
if ($link){
$db_selected = mysql_select_db('Excel', $link);
@mysql_set_charset('utf8',$link);
//Create Database table with one Field
$sql = "CREATE TABLE xlsx (
rowID INT NOT NULL ,
PRIMARY KEY (rowID)
)";
mysql_query($sql);
//Create Others Field (A, B, C & ...)
$columns_name = array();
$columns_name = $excell_array_data[$skip_rows+1];
foreach (array_keys($columns_name) as $fieldname ){
$sql = "ALTER TABLE xlsx ADD $fieldname VARCHAR(1000)";
mysql_query($sql);
}
//Insert Excel data to MySQL
foreach( $excell_array_data as $k=>$v){
$keys = join(array_keys($v), ',');
$values = join($v, "','");
$sql = "insert into xlsx (rowID, $keys) values ($k, '$values') " ;
mysql_query($sql);
}
} else {
echo "Error in database connection.";
}
?>
من یه فایل Excel با داده های فارسی رو ، توسط کلاس PHPExcel توی دیتابیس ایمپورت کردم
و این داده ها به همون شکل فارسی توی دیتابیس ذخیره شدند. ولی وقتی که میخام این اطلاعات
رو نمایش بدم ،داده ها رو به شکل علامت سوال نشون میده.
میشه لطفا کمکم کنید که چکار کنم تا اطلاعات درست نمایش داده بشن؟؟
کدی هم که برای ذخیره اطلاعات استفاده کردم این بود:
<?php
require_once 'PHPExcel.php';
$objReader = new PHPExcel_Reader_Excel2007();
$objPHPExcel = $objReader->load('book.xlsx');
$rowIterator = $objPHPExcel->getActiveSheet()->getRowIterator();
$skip_rows = 0;
$excell_array_data = array();
foreach($rowIterator as $row){
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
if($skip_rows >= $row->getRowIndex ()) continue;
$rowIndex = $row->getRowIndex ();
$excell_array_data[$rowIndex] = array();
foreach ($cellIterator as $cell) {
$excell_array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
}
}
$link = @mysql_connect('localhost', 'root', '');
if ($link){
$db_selected = mysql_select_db('Excel', $link);
@mysql_set_charset('utf8',$link);
//Create Database table with one Field
$sql = "CREATE TABLE xlsx (
rowID INT NOT NULL ,
PRIMARY KEY (rowID)
)";
mysql_query($sql);
//Create Others Field (A, B, C & ...)
$columns_name = array();
$columns_name = $excell_array_data[$skip_rows+1];
foreach (array_keys($columns_name) as $fieldname ){
$sql = "ALTER TABLE xlsx ADD $fieldname VARCHAR(1000)";
mysql_query($sql);
}
//Insert Excel data to MySQL
foreach( $excell_array_data as $k=>$v){
$keys = join(array_keys($v), ',');
$values = join($v, "','");
$sql = "insert into xlsx (rowID, $keys) values ($k, '$values') " ;
mysql_query($sql);
}
} else {
echo "Error in database connection.";
}
?>