PDA

View Full Version : سوال: نمایش اطلاعاتی که توسط فایل اکسل در پایگاهداده ایمپورت شده اند؟؟



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.";
}
?>

peyman_abdollahy
پنج شنبه 01 آبان 1393, 10:04 صبح
collation دیتابیس و جدولتو utf8-general-ci کن و به این شکل به بانک متصل شو

$conn=mysqli_connect('localhost','root','','excel' ) or die(mysqli_error());
mysqli_query($conn,"SET character_set_results=utf8 , character_set_client=utf8 , character_set_connection=utf8 , character_set_database=utf8 , character_set_server=utf8");

saba_kamali
پنج شنبه 01 آبان 1393, 11:04 صبح
من کدهای اتصال به دیتا بیس رو با mysql زدم
و شما با mysqli به دیتابیس وصل شدید واسه همین کدی که شما گفتید رو با mysql به کار بردم اما بازم جواب نداد
مثلاmysql_connect به جای mysqli_connect

peyman_abdollahy
پنج شنبه 01 آبان 1393, 21:58 عصر
باید دقت کنی که mysqli و mysql ی کوچولو فرق دارن ، مثلا بعد کانکت شدن به دیتا بیس اگر بخوای از mysql استفاده کنی باس بنویسی

mysqli_query("SET character_set_results=utf8 , character_set_client=utf8 , character_set_connection=utf8 , character_set_database=utf8 , character_set_server=utf8",$conn);

اول مشکل فارسی نوشتن و خوندن جدا حل کن ، بعد با مساله بالا ادغامش کن