PDA

نسخه کامل مشاهده نسخه کامل : ایراد در سرور mysql: ارسال خروجی فارسی بصورت ???????????? ??



MATRIX reloaded
16-01-2009, 02:15
نمی دونم دلیلش چیه که وقتی سرور mysql برای تقریبا 10 دقیقه داون می شه یعنی هیچ درخواستی ارسال نمی شه ، کاراکترهای فارسی رو بصورت ؟؟؟ ؟؟؟؟ ؟؟ ؟؟؟؟؟ ؟؟ نشون می ده
البته لازم به ذکر است که هنگام انتخاب دیتابیس یونیکود utf8 رو هم انتخاب کردم
اینو حتی توی سرور اینترنتی که خریدم هم امتحان کردم بازهم همینطوریه
نمی دونم شاید بدلیل تداخل در هسته سایتم هست ولی باز اگر کسی در چنین موقعیتی نکته ای دریافته از ما دریغ نکنه
ممنون می شم

MAXXX
16-01-2009, 17:34
3 تا چیز رو باید بر رویهutf تنظیم کنی
1. دیتابیست
2. کانکشنت
3. صفحه نمایش دهنده اطلاعات
هر سه درسته ؟

MATRIX reloaded
16-01-2009, 21:29
بله هر سه درسته
اگر متنی رو که نوشتم رو کامل مطالعه کنید متوجه خواهید شد که فقط هر چند دقیقه یک بار که mysql داون شده یعنی بیکار نشسته
اگر درخواستی داشته باشیم دفعه اول رو در مورد کاراکترهای فارسی بصورت ??? ?? ؟؟؟ ؟؟؟ ؟؟ نشون می ده
اگر بتونید کمکم کنید ممنونتون می شم.
thanks

MATRIX reloaded
17-01-2009, 19:18
کسی نبود کمکم کنه؟
پس این پرو ها کجان؟

MATRIX reloaded
29-01-2009, 14:45
دوستان حرفه ای نتونستن کمکم کنن؟

عزیزان فقط جواب سوالای آسون رو ندید ، این هم یه سوال واقعی و خفن ! جواب بدید خواهشن!

Ultimator
29-01-2009, 15:55
سلام ! 


collation دیتابیستون چیه ؟ 
رو utf_general بذارید

neopersia
30-01-2009, 06:41
اولش که همونطوری که گفته شد باید کولیشن دیتابیس رو درست انتخاب کنید
هر دفعه بعد از اتصال به دیتابیس هم این کوئری رو بفرستید تا انکودینگ کانکشن هم درست باشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته اطلاعاتی که با انکودینگ نا مناسب وارد شده دیگه فکر نکنم درست بشه! ولی هر چیزی که بعد از کوئری بالا وارد بشه موقع خوندن هم درست نمایش داده میشه


اگر درست نشد دیگه احتمالاً مشکل از سرورتون هست. که باید مدیر سرور حلش کنه!
اصلاً چه معنی داره که سرور mysql ده دقیقه داون باشه بدتر از اون تکرارم بشه! :31:

neopersia
30-01-2009, 06:41
اولش که همونطوری که گفته شد باید کولیشن دیتابیس رو درست انتخاب کنید
هر دفعه بعد از اتصال به دیتابیس هم این کوئری رو بفرستید تا انکودینگ کانکشن هم درست باشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته اطلاعاتی که با انکودینگ نا مناسب وارد شده دیگه فکر نکنم درست بشه! ولی هر چیزی که بعد از کوئری بالا وارد بشه موقع خوندن هم درست نمایش داده میشه


اگر درست نشد دیگه احتمالاً مشکل از سرورتون هست. که باید مدیر سرور حلش کنه!
اصلاً چه معنی داره که سرور mysql ده دقیقه داون باشه بدتر از اون تکرارم بشه! :31:

MATRIX reloaded
08-02-2009, 16:52
همشونو رعایت کردم. فکر کنم مشکل از یه کد یا کلاس باشه که مداخله می کنه

MATRIX reloaded
01-04-2009, 18:10
شاید بخاطر این باشه که collation دیتابیسم رو utf8 persian هست!

MATRIX reloaded
01-04-2009, 20:12
collation رو روی utf8_general_ci گذاشتم.,ولی هنوز درست نشده!

MATRIX reloaded
01-04-2009, 21:02
اصلاً چه معنی داره که سرور mysql ده دقیقه داون باشه بدتر از اون تکرارم بشه! :31:

فکر کنم منظورمو برای داون شدن کامل توضیح دادم.

hosseintdk775
01-04-2009, 22:47
بسم الله الرحمن الرحیم
سلام
بعد از mysql_select_db کد زیر را وارد کنید:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MATRIX reloaded
02-04-2009, 00:07
این کارا رو انجام دادم. (خواهشا متن کامل سوال منو بخونید)

MATRIX reloaded
06-04-2009, 11:00
شما راه حلی ندارید؟!

hosseintdk775
06-04-2009, 11:22
بسم الله الرحمن الرحیم
سلام
شما بعد از اینکه عملیات مورد نظر رو انجام دادید دیتابیس رو می بنیدید؟

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

کدهای مروبطه رو هم اگر امکانش هست آپلود کنید.

MATRIX reloaded
06-04-2009, 16:52
نه . نمی بندم
من یک بار در header.php به دیتابیس وصل می شم و البته یادم رفته بود دیتابیس رو close کنم

hosseintdk775
06-04-2009, 16:56
نه . نمی بندم
من یک بار در header.php به دیتابیس وصل می شم و البته یادم رفته بود دیتابیس رو close کنم

بسم الله الرحمن الرحیم
سلام
خوب یکبار امتحان کنید ببینید جواب می گیرید یا خیر.

MATRIX reloaded
06-04-2009, 17:08
حل نشده. باز همین مشکلو دارم!

hosseintdk775
06-04-2009, 17:11
فکر کنم مشکلم دیگه حل شده. ممنون بابت کمکت
وقتی یه نکته ظریف از یاد آدم می ره ...

بسم الله الرحمن الرحیم
سلام
خواهش می کنم / بله، گاها برای من هم اتفاق افتاده که برخی کدها رو جا انداخته باشم.

MATRIX reloaded
06-04-2009, 20:44
بازم این مشکلو دارم ولی بنظرم خیلی کمتر شده!

neopersia
07-04-2009, 01:16
نیازی نیست حتماً کانکشن بسته بشه! چون آخر اسکرپت اتوماتیک بسته میشه اما در هر حال بستن کانکشن وقتی که دیگه استفاده نمیشه میتونه با روی سرور رو کم کنه
مشکل هنوز همون مشکل اولیه؟ یعنی بعد از داون شدن سرور تا یه مدتی با فارسی مشکل داره؟ به نظرم نمیتونه مشکل برنامه نویسی باشه. برمیگرده به سیستمی که سرور توش نصبه اونا باید مشکلشون رو پیدا کنن!

MATRIX reloaded
07-04-2009, 05:46
نه بخاطر سرور نیست چون تو لوکال هم همین طوریه
ولی بعد از این که کد بستن کانکشن رو اضافه کردم دفعات بهم ریختن کاراکترها خیلی کمتر شده ولی بازم تکرار می شه. نمی دونم به خاطر mysql_close بود یا یه چیز دیگه رو دستکاری کردم که بهتر شده
(عجب برنامه نویس پر دردسری ام)

hosseintdk775
07-04-2009, 06:18
نه بخاطر سرور نیست چون تو لوکال هم همین طوریه
ولی بعد از این که کد بستن کانکشن رو اضافه کردم دفعات بهم ریختن کاراکترها خیلی کمتر شده ولی بازم تکرار می شه. نمی دونم به خاطر mysql_close بود یا یه چیز دیگه رو دستکاری کردم که بهتر شده
(عجب برنامه نویس پر دردسری ام)

بسم الله الرحمن الرحیم
سلام
خوب اگر با بستن دیتابیس مشکل مربوطه تا حدودی کم شده است / شاید به طور کامل دیتابیس بسته نمی شود تا مشکل به کل رفع شود.

شما بهتره یکبار دیگر کدهایتان را از ابتدا چک کنید، و در همه در پایان کار دیتابیس را به طور اصولی اش ببندید.
و ببینید نتیجه می گیرید یا خیر.

neopersia
07-04-2009, 11:14
اگه تو لوکال هم همین مشکل رو داری احتمالاً یه جا باگ داره که سرور بیچاره رو میکشه پایین :31:
شاید مثلاً توی حلقه ای چیزی اشتباه کرده باشی که این کار رو میکنه. بهتره قسمتهای مختلفش رو جدا جدا دیباگ کنی ببینی کدوم قسمت بیشترین منابع رو استفاده میکنه

MATRIX reloaded
07-04-2009, 14:59
اگه تو لوکال هم همین مشکل رو داری احتمالاً یه جا باگ داره که سرور بیچاره رو میکشه پایین :31:
شاید مثلاً توی حلقه ای چیزی اشتباه کرده باشی که این کار رو میکنه. بهتره قسمتهای مختلفش رو جدا جدا دیباگ کنی ببینی کدوم قسمت بیشترین منابع رو استفاده میکنه

بخش اعظم سایت دیگه این مشکلو نداره.
اوکی. چکش می کنم!

MATRIX reloaded
07-04-2009, 15:03
اگه تو لوکال هم همین مشکل رو داری احتمالاً یه جا باگ داره که سرور بیچاره رو میکشه پایین :31:


:16::27::31:

eli23
07-04-2009, 21:08
سلام يا اينو بذارين:
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'");
يا اينو انشاا... كه جواب بده:
$db=mysql_connect('localhost','root','');
mysql_query("SET NAMES 'utf8'", $db);
البته هردو بايد بعد از كانكت شدن به database نوشته شه بعد از اينا:
link=@mysql_connect($host,$muser,$mpass) or die("cannect database");
@mysql_select_db($dbname) or die('Failed in open database');

MATRIX reloaded
08-04-2009, 21:07
کاری که گفتین رو انجام داده بودم:
به نظر شما کد زیر ایراد داره؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
فکر کنم یه جای کارم می لنگه که این خروجی اینطوری بهم میریزه!

eli23
08-04-2009, 22:17
سلام ببخشي من خيلي ـو اين زمينه آماتورم هنوز يه چند ماهيه اونم برا پايان نامم دارم كار مي كنم . ولي نبايد شما اول $queryتونو تو يه $resultي مي ريختين بعد اون $result و fetch ميكردين؟


$result= mysql_query($query);


while($row = mysql_fetch_assoc($result))

MATRIX reloaded
08-04-2009, 22:37
چرا؟؟
خوب این روش استاندارده

eli23
09-04-2009, 20:32
سلام من تو كداي خودم result حذف كردم تو ليست كشوييم ديگه هيچي نشون نداد.چون از بانكم توي يه ليست كشويي مي خوندم. برا شما درست نشد

MATRIX reloaded
09-04-2009, 22:43
درستش کردم
کلا روش من غلط بود
روش:
کلاسی نوشتم که query ها رو در یک تابع می ذاره و در هر بار اجرای هر query دیتابیس بسته می شه. یعنی query ها رو به یک کانکشن مخصوص مرتبط می سازم که در هر بار تابع اتصال به دیتابیس فراخوانی بشه. این روش استاندارده منتها من نمی دونستم