PDA

View Full Version : سوال: جستجوی فارسی در دیتابیس



mkhaled
پنج شنبه 02 آبان 1387, 00:03 صبح
سلام دوستای کوچیک و بزرگ خودم خسته نباشید.

من با جستجوی کلمات فارسی تو دیتابیس به مشکل برخورد کردم لطفا کمک کنید.
دلیلشو خودم فهمیدم ولی نمی دونم چجوری حل میشه !
اولا بگم که من
MySQL - 5.0.21
phpMyAdmin - 2.8.1
استفاده میکنم .
تو فراخوانی کلمات فارسی ازدیتابیس هم مشکلی ندارم
و در ضمن خود دیتابیس و حدول ها و رکورد ها UT8_Persian_ci گذاشتم
مشکل من اینجاست که اطلاعات فارسی به صورت کدهای عددی یونیکد
داخل دیتابیس ذخیره میشه اینجوری :(عب&#1575) تو خوندنشون
مشکل ندارم اما وقتی یه mysql_query واسه جستجوی کلمات فارسی میزنم
کلمه رو نمی شناسه اما وقتی مثلا عدد 1593که به صورت یونیکد هست رو میزنم
سطر رو بر میگردونه .اگه راهی وجود داره که خود کلمه به صورت فارسی تو دیتابیس ذخیره
بشه ممنون میشم کمکم کنید.

yaqubian
پنج شنبه 02 آبان 1387, 08:19 صبح
دوست عزیز
آیا خود صفحاتتون بصورت utf-8 هستند یا نه؟
اگه صفحات unicode باشند اطلاعات تو DB به این صورت نشون داده می شه مثلا سعید
و تو جستجوی فارسی هم مشکلی بوجود نمی یاد.
موفق باشید

as13851365
پنج شنبه 02 آبان 1387, 08:20 صبح
خوب شما هم اول نوشته های فارسی رو به یونیکد تبدیل کنید بعد در بانک جستجو کنید !

mkhaled
پنج شنبه 02 آبان 1387, 14:18 عصر
ممنون از جوابهاتون
خدمتتون عرض كنم كه صفحات من به صورت utf8 هستند و ارسال و دريافت اطلاعات همونجوري كه گفتم درست انجام ميشه و تنها مشكل اينه
select * from Table where row like "%$search%" order by id
وقتي كلمه انگليسي رو واسش ميفرستم درست كار ميكنه ولي با كلمه فارسي مشكل داره خوب منم
اگه جاي ديتابيس بودم مشكل پيدا مي كردم.چون اطلاعات به صورت كد ذخيره شده و كلماتي كه صفحات ارسال مي كنند به صورت فارسي ارسال ميشه نمي دونم شما چرا مي گيد به مشكل برخورد نمي كنه ؟

اگه طبق گفته as13851365 بشه اطلاعات فارسي كه من دارم ميفرستم رو به يونيكد تبديل كنه مشكل
حل ميشه .اگه راهي هست ممنون ميشم كمك كنيد
من يه دستور يه جا ديدم به صورت زير بود ولي كار نكرد
convert(utf8 $motaghayer using latin1
در ضمن من از يكي پرسيدم گفت از wamp استفاده كن و مشكلت اينه كه از xamp استفاده ميكني
ممنون ميشم نظرتون رو بگيد و كمك كنيد تا مشكلم حل بشه.

mkhaled
جمعه 03 آبان 1387, 01:21 صبح
مشکل حل شد
من از xamp استفاده می کردم و اصلا utf8_unicode_ci نداشت
با نصب wamp و استفاده از دستوری که 100 جا دیدم
mysql_query("SET NAMES 'utf8'"); جستجوی سیستم به طور صحیح کار میکنه.
امیدوارم باز هم به مشکل برخورد کنم . تا چیزای جدید یاد بگیرم (-;