PDA

View Full Version : فارسی ثبت شده در فیلد موقع کوئری گرفتن



dreamer
پنج شنبه 01 آذر 1386, 17:58 عصر
این صفحه رو ببینید لطفا :
http://soltan-soundlight.ir/777/CP/sofal.php

چرا فیلد هایی که فارسی ثبت شده موقع کوئری گرفتن به حالت ??? در میاد ؟
اینم قسمت php صفحه...


<?php
$user = "soltan_arta";
$pass = "1234";
$db = "soltan_sample";
$link = mysql_pconnect("localhost",$user,$pass);
if(! $link )
die("could not connect to mySQL");

if (! mysql_select_db($db,$link))
die ("couldn't open DATA BASE".mysql_error());


$result = mysql_query("SELECT * FROM sofal");
$num_rows = mysql_num_rows($result);
print "در حال حاضر $num_rows ردیف در این قسمت است";
print '<table width="634" border="0" cellspacing="10" cellpadding="5">';
while( $sofal_rows = mysql_fetch_array($result)){
print '<tr>';
echo "<td width=\"323\" bgcolor=\"#DED1BE\" class=\"style9\"><div align=\"center\">سفارش به نام :". $sofal_rows["name"] ."</div></td>";
print '<td width="101" bgcolor="#DED1BE" class="style9"><div align="center"><a href="#">بررسی سفارش</a></div></td>';
print '<td width="140" bgcolor="#DED1BE" class="style9"><div align="center"><a href="#">حذف و رد سفارش</a></div></td>';
print '</tr>';
}
print '</table>';

mysql_close($link);

?>

dreamer
پنج شنبه 01 آذر 1386, 21:42 عصر
وقتی از طریق فرم دیتا ها رو میفرستم به mysql و ثبت میشه فارسی رو درست نمایش میده...
اما وقتی یک فیلد رو توسط phpMyAdmin پر میکنم موقع کوئری گرفتن برای نمایش فیلد ها فارسی به علامت سوال تبدیل میشه...

Collation همه فیلد ها روی utf8_persian_ci است وMySQL connection collation هم روی همین تنظیم شده...

Folaani
جمعه 02 آذر 1386, 16:30 عصر
پس از هر اتصال به دیتابیس، و قبل از ارسال کوئریهای دیگه، این کوئری رو باید بفرستید: SET NAMES 'utf8'
چه موقع درج و چه موقع خواندن اطلاعات.

فرم شما باید روی انکدینگ یوتیف۸ تنظیم شده باشه (عمدتا با ارسال هدرهای لازم).

ستونهای فارسی جدول شما باید کاراکترست یوتیف۸ باشن. Collation زیاد مهم نیست؛ برای مرتب سازی بکار میره فقط.

دیگه نمیدونم چیزی رو فراموش کردم یا خیر!

scorpion_man
دوشنبه 19 آذر 1386, 01:25 صبح
من زیاد از PHP نمی دونم ولی چند نکته هست که باید متذکذ بشم
1- انتخاب نوع table از نوع utf8_persian
2-گذاشتن meta-tag برای نشان دادن encoding به صورت utf8 در قسمت header هر صفحه ای که اطلاعات در اون صفحه ثبت یا نمایش داده میشه
3-اطلاع به سرور هنگام ساختن connection string که داده ها از نوع utf8 میباشند
با انجام این سه کار مشکلی نخواهید داشت
موفق باشید