PDA

View Full Version : مبتدی: مشکل این کد چیه ؟!



gorywolf
سه شنبه 12 دی 1391, 19:04 عصر
سلام من دیتابیس ساختم با collation :utf-8-pesian-ci و مقدار 2 تا از فیلد های اون رو به صورت فارسی وارد کردم
اما وقتی وقتی صفحه پی اچ پی رو باز می کنم اون نوشته های فارسی به شکل علامت سوال میشه
لطفا کمک کنید




$server=mysql_connect("localhost","root","");

mysql_select_db("learning",$server);

$query=mysql_query("select * from phone ",$server);

$row=mysql_fetch_array($query);

for($i=0;$i<mysql_num_fields($query);$i++)
{

echo $row[$i]."\t";

}



دیتابیس:

parsboy
سه شنبه 12 دی 1391, 19:50 عصر
دوست عزیز برای پشتیبانی زبان فارسی در دیتا بیس از این کد استفاده کنید


DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;")
or die(mysql_error());

gorywolf
سه شنبه 12 دی 1391, 20:02 عصر
دوست عزیز برای پشتیبانی زبان فارسی در دیتا بیس از این کد استفاده کنید


DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;")
or die(mysql_error());

ببخشید چطور باید از این کد استفاده کنم.:متعجب:

parsboy
سه شنبه 12 دی 1391, 20:14 عصر
به اینصورت


$server=mysql_connect("localhost","root","");

mysql_select_db("learning",$server);

$query=mysql_query("select * from phone ",$server);
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;")
or die(mysql_error());
mysql_close($con);
$row=mysql_fetch_array($query);

for($i=0;$i<mysql_num_fields($query);$i++)
{

echo $row[$i]."\t";

}

gorywolf
سه شنبه 12 دی 1391, 20:23 عصر
ممنون ولی باز هم به همون شکله

97708

parsboy
سه شنبه 12 دی 1391, 20:44 عصر
شاید این بدردت بخوره!!!

http://webgoo.ir/26/%D8%B3%D8%A7%D8%AE%D8%AA-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%AC%D8%AF%D9%88%D9%84-%D9%88-%D8%B1%D8%AF%DB%8C%D9%81-%D8%A8%D8%A7-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-create-%D8%AF%D8%B1-mysql

hidensoft
سه شنبه 12 دی 1391, 21:54 عصر
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;")
or die(mysql_error());
این چیه الان ؟

چند تا مورد هست که شما می بایست رعایت کنید.
اول از همه اینکه Content-Type رو utf-8 ست کنید برای browser


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


با توجه به اینکه شما دیتابیستون collation :utf-8-pesian-ci هست فقط باید mysql رو آگاه کنید که ارسال و دریافت اطلاعات با یونیکد نوع utf8 هستش.
برای این کار ۲ راه وجود داره !


mysql_query("set names 'utf8'");

یا

$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8',$link);

که نمونه اول پیشنهاد نمی شه. نمونه دوم سریعتره و از طرف php هم پیشنهاد شده.

gorywolf
سه شنبه 12 دی 1391, 22:18 عصر
ممنون تا حدودی درست شد قسمت نام خانوادگی داخل دیتابیسم به شکل علامت سوال در اومده97728

97729

hidensoft
سه شنبه 12 دی 1391, 23:03 عصر
اونارو پاک کن. دوباره اینسرت کن.
اصلا بهت پیشنهاد نمی کنم اسم فیلد هارو فارسی در نظر بگیری !

hamedarian2009
چهارشنبه 13 دی 1391, 09:49 صبح
با سلام
شما ابتدا باید تمام فیلدهای جدوالی که میخواهید توش رکوردهای فارسی درج کنید collation اونو رو ut8_persian_ci قرار بدین و دخیره کنین و سپس تو کد اتصال به دیتابیستون بعد از دستور mysql_select_db از تابع زیر استفاده کنید برای نمونه به این صورت :


$connection = mysql_connect ('localhost','root','') or die ('could not connect:'.mysql_error());
$select_db = mysql_select_db ('db_name',$connection) or die ('could not select db:'.mysql_error());
mysql_query('set names utf8');

MMSHFE
چهارشنبه 13 دی 1391, 16:22 عصر
دوست عزیز، این تاپیک (http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C&p=1576424&viewfull=1#post1576424) رو ببینید. کلاً قبل از مطرح کردن سؤال، جستجو کنید.
موفق باشید.