PDA

View Full Version : خروجی اکسل از بانک اطلاعاتی



fafa_na
یک شنبه 15 مرداد 1391, 08:32 صبح
باسلام
تاپیک های قبلی را خوندم و ممنون از مطالب .من تونستم خروجی بگیرم ولی یک اشکال دارم اونم اینکه مطالب فارسی من علامت سوال میشه ولی نمیدونم چکارش کنم
اینم کدی که استفاده کردم


include 'connection.php';
$sql ="select * from user where shahr ='".$_SESSION['shahr']."' and name='".$_POST["name"]."' or family='".$_POST["family"]."' order by id desc";
$rec = mysql_query($sql) or die (mysql_error());

$num_fields = mysql_num_fields($rec);

for($i = 0; $i < $num_fields; $i++ )
{
$header .= mysql_field_name($rec,$i)."\\t";
}

while($row = mysql_fetch_row($rec))
{
$line = '';
foreach($row as $value)
{
if((!isset($value)) || ($value == ""))
{
$value = "\\t";
}
else
{
$value = str_replace( '"' , '""' , $value );
$value = '"' . $value . '"' . "\\t";
}
$line .= $value;
}
$data .= trim( $line ) . "\\n";
}

$data = str_replace("\\r" , "" , $data);

if ($data == "")
{
$data = "\\n No Record Found!\n";
}

Header("Content-Disposition: attachment; filename=export.csv");
print "$header\\n$data";

us1234
یک شنبه 15 مرداد 1391, 11:54 صبح
مشکل از کانکشن و نوع اتصال به دی بی و حتی نوع فیلد های دی بی است . باید تمامی موارد utf-8 باشد

fafa_na
یک شنبه 15 مرداد 1391, 12:31 عصر
بانک و جداول من همگی utf-8 هستن ولی مشکل از کانکشن و نوع اتصال است یعنی چطوری؟؟؟

us1234
یک شنبه 15 مرداد 1391, 15:40 عصر
باید به این صورت کانکت بشید

$d->query("SET CHARACTER SET utf8;");
$d->query("SET SESSION collation_connection = 'utf8_general_ci'");

query همون mysql_query می باشد که به صورت تابع در اومده

Variable
دوشنبه 16 مرداد 1391, 02:55 صبح
منم همین مشکلو داشتم ولی اینجوری درست شد.. البته شما به خط اخر توجه کنبد


$this->host="mysql:host=localhost;dbname=bimarestan";
$this->db="bimarestan";
$this->user=$user;
$this->pass=$pass;

$this->pdo = new PDO($this->host,$this->user,$this->pass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));



منظورم این دستوره


array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")

fafa_na
دوشنبه 16 مرداد 1391, 08:51 صبح
ممنون ولی خطای زیر را میده
Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

fafa_na
دوشنبه 16 مرداد 1391, 09:12 صبح
نمیدونم چه بلای سرکدی اومده داره از همون صفحه خروجی اکسل خروجی میگیره یعنی کدهای صفحه منو کامل گذاشته داخل یه فایل اکسل؟چکارش کنم

fafa_na
دوشنبه 16 مرداد 1391, 09:32 صبح
آقا یه نکته دیگه اونم اینکه من فیلدهای فارسیمو تو mysql بدرستی میبینم ولی همونجام اگه خروجی اکسل بگیرم فیلدهای فارسیم درست نشان داده نمیشود ممنو میشم راهنمای کنید
کدم که نمیدونم چی شده جنی شده

fafa_na
دوشنبه 16 مرداد 1391, 11:50 صبح
با اصلاح دوخط آخر به این دوخط
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: filename=\"powers.xls\"");
print "$header\\n$data";
مشکل فارسی حل شد فقط نمیدونم چرابجای اینکه سطرهای فیلتر شده منو تو خروجی اکسل نشون بده داره تمام اطلاعات فرم منو نشون میده.لطفا یکی راهنمای کنه

fafa_na
سه شنبه 17 مرداد 1391, 12:04 عصر
یه کد دیگم پیدا کردم ولی اینم باز مشکل فارسی نویسی داره کسی نمیتونه کمک کنه
// Connect and query the database for the users
include 'connection.php';
$sql = "SELECT * FROM user ORDER BY id";
$results = mysql_query($sql);

// Pick a filename and destination directory for the file
// Remember that the folder where you want to write the file has to be writable
$filename = "user".".csv";

// Actually create the file
// The w+ parameter will wipe out and overwrite any existing file with the same name
$handle = fopen($filename, 'w+');

// Write the spreadsheet column titles / labels
fputcsv($handle, array('id','name','family'));

// Write all the user records to the spreadsheet

while ($row=mysql_fetch_array($results))
{
fputcsv($handle,array($row['id'],$row['name'],$row['family']));
}


// Finish writing the file
fclose($handle);

fafa_na
سه شنبه 17 مرداد 1391, 12:16 عصر
لطفا یکی راهنمایی کنه کدم چه ایرادی داره که تمام صفحه را نشان میده

fafa_na
چهارشنبه 18 مرداد 1391, 12:42 عصر
هیچکس نمیتونه کمک کنه .یعنی هیچ کس خروجی اکسل نیاز نداره