PDA

View Full Version : خواندن اطلاعات از دیتابیس به صورت فارسی



abbas3zaar
دوشنبه 03 اسفند 1394, 15:42 عصر
سلام. من طبق یک آموزش انگلیسی دارم جلو میرم ولی این آموزش با utf-8 جلو نمیره و موقع ساخت دیتابیس encoding رو دست نزد ولی من چون میدونستم utf-8 persian زدم . حالا همه اطلاعاتم و جداولی که دارم utf-8 هستن ولی میخوام بخونم علامت سوال میاد در قالب. یه دستوری بود که در فایل db connect میزاشتیم چی بود؟

این فایل db.php


<?php
$db['db_host'] = "localhost";
$db['db_user'] = "root";
$db['db_pass'] = "";
$db['db_name'] = "cms";

foreach($db as $key => $value){
define(strtoupper($key),$value);
}

$connection = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);

?>


اینم در فایل index


<?php
$query = "SELECT * FROM categories";
$select_all_categories_query = mysqli_query($connection,$query);

while($row = mysqli_fetch_assoc($select_all_categories_query)) {
$cat_title = $row['cat_title'];
echo "<li><a href='#'>{$cat_title}</a></li>";
}
?>

Farshid007
دوشنبه 03 اسفند 1394, 17:35 عصر
با دستورات SQL فارسی INSERT کنی درست میشه
اون داده ای که با PHPmyAdmin وارد جدول کردی به صورت علامت ؟ در میان


mysql_query("SET NAMES 'utf8'", $connection);
mysql_query("SET CHARACTER SET 'utf8'", $connection);
mysql_query("SET character_set_connection = 'utf8'", $connection);

abbas3zaar
دوشنبه 03 اسفند 1394, 18:15 عصر
با دستورات SQL فارسی INSERT کنی درست میشه
اون داده ای که با PHPmyAdmin وارد جدول کردی به صورت علامت ؟ در میان


mysql_query("SET NAMES 'utf8'", $connection);
mysql_query("SET CHARACTER SET 'utf8'", $connection);
mysql_query("SET character_set_connection = 'utf8'", $connection);


آره دستی از phpmyadmin وارد کردم. اینم عکس:
تو phpmyadmin فارسی نشون میده
http://8pic.ir/images/eusql7zzqdaltylnh2n6_thumb.jpg (http://8pic.ir/viewer.php?file=eusql7zzqdaltylnh2n6.jpg)

دیتابیس رو ساختنی utf-8-persian-ci زدم. توی جداول فارسی نشدون میده ولی وقتی select میکنم ؟؟؟؟؟ میشه.
اون کدهای فایل db.php که گذاشتم مشکلی نداره؟
کئهایی که دادی رو کجا بزارم؟

Farshid007
سه شنبه 04 اسفند 1394, 11:08 صبح
تو هر صفحه ای که قراره کوئری اجرا بشه قبل انجام کوئری این سه تارو اجرا کن تا مطمن باشی با UTF 8 وصل شدی

abbas3zaar
سه شنبه 04 اسفند 1394, 14:33 عصر
تو هر صفحه ای که قراره کوئری اجرا بشه قبل انجام کوئری این سه تارو اجرا کن تا مطمن باشی با UTF 8 وصل شدی
راستی mysqli_query با mysql_query چه فرقی داره؟

الان من توی یک صفحه فقط این کوئری رو دارم:


$query = "SELECT * FROM posts";
$select_all_post_query = mysqli_query($connection,$query);
while($row = mysqli_fetch_assoc($select_all_post_query)) {
$post_title = $row['post_title'];
$post_author = $row['post_author'];
$post_date = $row['post_date'];
$post_image = $row['post_image'];
$post_content = $row['post_content'];


این سه تا رو هر قسمتش گذاشتم کار نکرد

قبلشم میزارم، اینجوری:


<?php

mysql_query("SET NAMES 'utf8'", $connection);
mysql_query("SET CHARACTER SET 'utf8'", $connection);
mysql_query("SET character_set_connection = 'utf8'", $connection);
$query = "SELECT * FROM posts";
$select_all_post_query = mysqli_query($connection,$query);
while($row = mysqli_fetch_assoc($select_all_post_query)) {
$post_title = $row['post_title'];
$post_author = $row['post_author'];
$post_date = $row['post_date'];
$post_image = $row['post_image'];
$post_content = $row['post_content'];

?>

abbas3zaar
چهارشنبه 05 اسفند 1394, 06:42 صبح
آقا توی کدها با یک کوئری insert وارد کردم فارسی نشون داد ولی دستی از phpmyadmin وارد کردم ؟؟؟ می اومد.
الان یه مشکللی که هست وقتی توی کدهام insert میکنم فارسی رو توی phpmyadmin به صورت بوت Ø§Ø³ØªØ نشون میده

این دو تا عکس رو ببین
جلو فیلد ها نوشته که utf-8-persian-ci هست. ولی category ها رو قاطی نشون میده فارسی ها شو

http://8pic.ir/images/u61hzt2xo1fogckc3pyf_thumb.jpg (http://8pic.ir/viewer.php?file=u61hzt2xo1fogckc3pyf.jpg)

http://8pic.ir/images/2w1wp5cotje6jxd4l0ug_thumb.jpg


(http://8pic.ir/viewer.php?file=2w1wp5cotje6jxd4l0ug.jpg)الان مشکلم میدونی چیه؟ خلاصه میگم:

1 - وقتی در phpmyadmin دستی insert میکنم در phpmyadmin فارسی نشون میده ولی در قالب ؟؟؟؟؟ میاد
2 - وقتی از توی کد ها یه کوئری insert میکنم در phpmyadmin قاطی ¨ÙˆØª است نشون میده ولیدر قالب مشکلی نداره و فارسی هست!

Farshid007
چهارشنبه 05 اسفند 1394, 08:44 صبح
در PHP جدید از mySQLi دیگه استفاده میشه

mysqli_query($connection,"SET NAMES 'utf8'");
mysqli_query($connection,"SET CHARACTER SET 'utf8'");
mysqli_query($connection,"SET character_set_connection = 'utf8'");
از اینا استفاده کن ببین چی میشه
البته دستی وارد کردن که فکر نکنم درست بشه شایدم بشه ولی نمیدونم چون آخه زیاد دنبالش نبودم
ولی تو اینسرت با کد دیگه هیچ مشکلی نباید پیش بیاد

abbas3zaar
چهارشنبه 05 اسفند 1394, 09:20 صبح
در PHP جدید از mySQLi دیگه استفاده میشه

mysqli_query($connection,"SET NAMES 'utf8'");
mysqli_query($connection,"SET CHARACTER SET 'utf8'");
mysqli_query($connection,"SET character_set_connection = 'utf8'");
از اینا استفاده کن ببین چی میشه
البته دستی وارد کردن که فکر نکنم درست بشه شایدم بشه ولی نمیدونم چون آخه زیاد دنبالش نبودم
ولی تو اینسرت با کد دیگه هیچ مشکلی نباید پیش بیاد

ایول درست شد، من کلمه i رو نمیزاشتم و الان mysql رو به mysqli تغییر دادم درست شد.ممنون
البته اینو بگم که داده های قبلی اینجوری ت Ø§Ø³Ø هستن ولی هرچی جدید اضافه میکنم (هم دستی از phpmyadmin و هم از داخل پانل مدیریت سایت) فارسی هست و فارسی هم در سایت نشون میده ولی باید داده های قبلی رو حذف کنم. بازم ممنون