-
فارسی سازی tableهای پایگاه داده برای نمایش فارسی داده های فرم ها
سلام
قبل از شروع از اینکه برای خیلی ها زیادی توضیح دادم پوزش، اما دوست ندارم کسی اشتباه کنه.
و بعد هم از اینکه انجمن امکان آپلود فایل رو نداد تا کد مورد نیاز رو آپلود کنم و راس و چپش به هم ریخته ...!
حتما برایتان پیش آمده که وقتی افزونه ای رو نصب می کنید، مخصوصا فرم ساز ها رو، پس از ورود اطلاعات و وقتی که می خواهید خروجی بگیرید و یا حتی قالب خود فرم در Front end سایت، نوشته های فارسی به صورت چندین ؟؟؟؟؟ نمایش داده می شوند.
در همین انجمن هم سوال هایی شده:
[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
یا
[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
البته راه حل این مشکل، همونطور که دوستان جواب دادن تغییر دستی charset و collation یا همون انکودینگ (ٍencoding) پایگاه داده هست.
بعلاوه، برای حل این مشکل راه سریع تر و بعلاوه ساده تری از تغییر دستی charset و collation پایگاه داده وجود دارد و اون هم اجرای یک دستور SQL هست. این دستور رو حداقل باید در PHPMyadmin و در پنل خودتون اجرا کنید اما فرقش اینه که با یک بار اجرای این دستور همه پایگاه داده شما به انکودینگ UTF8 و utf8_general_ci یا هر چیز دیگری که شما بخواهید تبدیل می شوند.
حالا این دستور رو از کجا بیاریم؟
این چیزیه که می خواهم توضیح بدم:
برای این کار لازمه یک فایل .php در یکی از فولدر های سرور ایجاد کنید و کد زیر رو بعد از انجام چند تغییر در اون قرار بدین و بعد از اجرای مسیر فایل کد برای شما ایجاد می شود. تنها کاری که باید انجام بدین کپی کردن اون کد در phpmyadmin و در تب SQL در پایگاه دادهتون هست.
در اجرای تنضیمات دقت کنید.
تنظیم نکردن نام پایگاه داده باعث تغییر انکودینگ همه پایگاه های داده میشه
که می تونه برای information_schema', 'mysql' مشکل ایجاد کنه.
کد:
کد:
<?php
//MySQL connection settings
$db_server = 'localhost';
$db_user="root";
$db_password="";
mysql_connect($db_server, $db_user, $db_password) or die(mysql_error());
//نام پایگاه داده خود را که می خواهید تغییر کند اینجا و در میان '' بنویسید. این جایی است که نباید فراموش کنید!
$dblist=array('');
//نام پایگاه داده ای که نباید دستکاری شود را اینجا قرار دهید. اگر بالایی را تنطیم کرده اید، نیازی به این نیست.
$skip_db_list = array('information_schema', 'mysql');
//Which charset to convert to?
$charset="utf8";
//Which collation to convert to?
$collation="utf8_general_ci";
//Only print queries without execution?
$printonly=true;
//Getting database names if they are not specified
$skip_db_text = '"'.implode('", "', $skip_db_list).'"';
if(count($dblist)<1) {
$sql="SELECT GROUP_CONCAT(`SCHEMA_NAME` SEPARATOR ',') AS FRST FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME` NOT IN ($skip_db_text)";
$result = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_assoc ($result);
$dblist=explode(",", $data["FRST"]);
}
//Iterating databases
foreach ($dblist as $dbname) {
$sql="SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET $charset COLLATE $collation;') as FRST FROM `information_schema`.`TABLES` t WHERE t.`TABLE_SCHEMA` = '$dbname' ORDER BY 1";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
echo $row["FRST"]."\r\n";
if(!$printonly) {
mysql_query($row["FRST"]) or die(mysql_error());
}
}
}
?>
قسمت های سبز را مطابق با پایگاه داده جوملای خود پر کنید.
در قسمت قرمز نام پایگاه داده جوملای خود را بگذارید. (نام database کل جوملا!)
قسمت بنقش را در صورتی که نمی خواهید قرمز را پر کنید تکمیل کنید
حال آدرس فایل را بر روی سرور در مرورگر خود وارد کنید. اگر همه چیز را درست انجام داده باشید، یک صفحه حاوی کد مورد نطر نمایش داده می شود.
همه کد موجود در صفحه را به عنوان دستور SQL در phpmyadmin وارد کنید.
شاد باشید و همیشه بخندید.
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
05-24-2012 12:23 PM
# ADS
تبلیغات در جوملا فارسی
-
سلام دوست عزیز !! (نام database کل جوملا!) یعنی چی ؟( یعنی نام دیتا بیس هاست ) ؟ ممنون از آموزشتون
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-

نوشته اصلی توسط
dr.jahangard
[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
سلام دوست عزیز !! (نام database کل جوملا!) یعنی چی ؟( یعنی نام دیتا بیس هاست ) ؟ ممنون از آموزشتون
یعنی اون Database رو که برای نصب جوملا ساختید و جوملا در آن نصب کردید .
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
سلام دوست عزیز ! من صفحه حاوی کد رو دریافت می کنم و کد ها رو در قسمت Run SQL query/queries on server کپی می کنم و بعد کلید GO رو می زنم ولی هیچ اتفاقی نمی افته و هنوز که هنوزه خروجی هام به شکل ؟؟؟؟ می اد
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
سلام و تشکر از پاسخ دوست عزیز، shmata.

نوشته اصلی توسط
dr.jahangard
[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
سلام دوست عزیز ! من صفحه حاوی کد رو دریافت می کنم و کد ها رو در قسمت Run SQL query/queries on server کپی می کنم و بعد کلید GO رو می زنم ولی هیچ اتفاقی نمی افته و هنوز که هنوزه خروجی هام به شکل ؟؟؟؟ می اد
دوست عزیز، شما کد رو باید در phpmyadmin خودت در SQL دیتابیستون وارد کنی.
برای این کار وقتی به صفحه phpmyadmin رفتی، ابتدا از سمت چپ صفحه، روی نام دیتابیسی که کد رو برای اون ایجاد کردی، یعنی همون دیتابیسی که در مرحله قبل سوال کردین و در تنظیمات قبلی جایگزین کردی، کلیک کنین. بعد از منوی بالا SQL برین و در قسمت Run SQL query/queries on database کد رو دوباره امتحان کنین.
اگر همه چیز به خوبی انجام شد، فراموش نکنید که امنیتش بیشتره که فایل .php که در سرور خود ایجاد کرده بودین رو هم حذف کنین.
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
با عرض پوزش دوست عزیز ! همه این کار ها رو انجام دادم متاسفانه باز هم مشکلم حل نشد ! وقتی کلید GO رو می زنم بعد از علامت loading همه کد ها پاک می شه و توی فرم ها هیچ اتفاقی نمی افته ! راستی پیشاپیش نیمه شعبان و این عید رو بهتون تبریک می گم
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-

نوشته اصلی توسط
dr.jahangard
[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
با عرض پوزش دوست عزیز ! همه این کار ها رو انجام دادم متاسفانه باز هم مشکلم حل نشد ! وقتی کلید GO رو می زنم بعد از علامت loading همه کد ها پاک می شه و توی فرم ها هیچ اتفاقی نمی افته ! راستی پیشاپیش نیمه شعبان و این عید رو بهتون تبریک می گم
دو حالت داره، یا باید پیغام بده انجام شد و یا خطایی اعلام کنه! چه پیغام یا خطایی میده؟
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-

نوشته اصلی توسط
popo2po
[مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]
دو حالت داره، یا باید پیغام بده انجام شد و یا خطایی اعلام کنه! چه پیغام یا خطایی میده؟
دوست من عید شما هم مبارک
من از این شیوه دوباره استفاده کردم. حق با شما هست و داده های قبلی تغییری نمی کنن. من چک کردم و دیدم که در همه جداولم، تغییر اتفاق افتاده.
داده هایی که قبلا وارد کرده بودم مثل قبل با ؟؟؟؟؟ نشون داده می شه.
داده های جدید که بعد از اجرای sql ذخیره می شه به درستی ذخیره و بازخوانی می شه.
فکر کنم شما هم مثل من نباید خیلی داده قدیمی داشته باشی که نشه اصلاحشون کرد (چون اصولا داده ها با ؟؟؟ نشون داده میشن.)
من نمیدونم که چطور باید مشکل داده های قبلی رو حل کرد. امیدوارم اگر راهی پیدا کردی به من هم نشون بدین.
موفق باشی و شاد.
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
سلام دوست منممنون از وقتی که گذاشتی ! من تمام راهنمایی هاتونو انجام دادم و با پیغام با موفقیت انجام شد مواجه شدم اما هنوز که هنوزه حتی داده های جدید هم به شکل ؟ می آد
ممنون می شم کمکم کنین !
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
-
چه ورژنی از جوملا داری؟ چه افزونه ای رو استفاده می کنی؟ چه ورژنی؟ لینک دانلودی ازش داری؟ آیا لوکال هستی یا روی سرور؟
جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.
-
علاقه مندی ها (Bookmarks)