PDA

View Full Version : سوال: مشکل با حروف فارسی دربخش where کوئری mysql



dousti_design
دوشنبه 26 فروردین 1392, 12:24 عصر
با سلام.
قصد گرفت کوئری زیر رو دارم اما نمیدونم چرا نمیشه:


SELECT * FROM tbl1 WHERE name='نام شماره یک'

نام شماره یک رو از $_GET میگرم. چندین راه رو امتحان کردم اما نمیشه. کوئری چیزی برنمیگردونه در حالی که وجود داره

mohsen6500
دوشنبه 26 فروردین 1392, 12:36 عصر
سلام
از این تابع دوستمون استفاده کن (http://barnamenevis.org/showthread.php?390958-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A7%D9%86%DA%AF%D9%84%DB%8C%D8%B3%DB%8C-%D8%A8%D9%87-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A8%D8%A7-PHP&highlight=%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF+%D9%81%D8 %A7%D8%B1%D8%B3%DB%8C)

ببین درست میشه

MMSHFE
دوشنبه 26 فروردین 1392, 12:47 عصر
موقع جستجوی فارسی هم مثل موقع ذخیره سازی باید بعد از اتصال به دیتابیس، کوئری 'SET NAMES 'utf8 رو اجرا کنید.

dousti_design
دوشنبه 26 فروردین 1392, 12:59 عصر
موقع جستجوی فارسی هم مثل موقع ذخیره سازی باید بعد از اتصال به دیتابیس، کوئری 'SET NAMES 'utf8 رو اجرا کنید.

موقع جستجو استفاده میکردم اما نمیدونستم که موقع ذخیره سازی هم باید استفاده کنم. ممنون

ravand
دوشنبه 26 فروردین 1392, 14:27 عصر
من هم یه بار همچین مشکلی برام پیش امده بود . شما Collation دیتابیس و جدول و فیلد ها رو باید از نوع utf8_persian_ci انتخاب کنی. شاید فیلدها و جدول رو از نوع utf8_persian_ci قرار دادی ولی فراموش کردی دیتابیس رو هم utf8_persian_ci انتخاب کنی. یه بار دیگه برو چک کن. تا مطمئن بشی.

Unique
دوشنبه 26 فروردین 1392, 16:18 عصر
علاوه بر اینها مراقب حروف ک , ی باشین ! ممکنه اطلاعات به صورت عربی ذخیره شده باشه و جستجوهایی که انجام میشه جواب نگیره.

ravand
دوشنبه 26 فروردین 1392, 16:43 عصر
علاوه بر اینها مراقب حروف ک , ی باشین ! ممکنه اطلاعات به صورت عربی ذخیره شده باشه و جستجوهایی که انجام میشه جواب نگیره.

خب این دیگه دست سیستم کاربر هست . اون فونت سیستمش رو باید تنظیم کنه. یا میتونه از str_replace برای جایگزینی استفاده کنه.
یا شما پیشنهاد دیگه ای دارید؟

colors
دوشنبه 26 فروردین 1392, 17:37 عصر
خب این دیگه دست سیستم کاربر هست . اون فونت سیستمش رو باید تنظیم کنه. یا میتونه از str_replace برای جایگزینی استفاده کنه.
یا شما پیشنهاد دیگه ای دارید؟

برای جایگزین کردن کلمات بهتره هم هنگام ورود اطلاعات و هم هنگام جستجو و ... جایگزینی انجام بشه. مثلا ممکنه توسط همون کاربری که (گ - ی) عربی رو قبلا تو بانک ثبت کرده, جستجوی انجام بشه و این بار (گ - ی) فارسی تایپ بشه که بازهم مشکل به وجود میاد. پس بهتره هم هنگام ثبت اطلاعات هم هنگام خواندن اطلاعات توسط کوئری ها, جایگزین کردن رو انجام بدیم.