نمایش نتایج 1 تا 7 از 7

نام تاپیک: مشکل در جستجوی کلماتی که حرف ی رو دارند

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    کرج
    پست
    238

    مشکل در جستجوی کلماتی که حرف ی رو دارند

    سلام
    اگر بر اساس متنی که وارد تکست باکس شده و حرف ی هم جزو کلمه اش هست توی بانک جستجو کنم نتیجه ای رو بر نمی گردونه.با mysql کار می کنم و فیلدی که بر اساسش جستجو می کنم هم توی بانکم utf8 و persian_ci هست.البته از اول اینجوری نبود.وقتی توی خود mysql کوئری رو اجرا می کنم نتیجه داره اما وقتی از طریق php اینکار رو می کنم هیچ جوابی نداره.
    چیکار باید کرد؟


  2. #2

    نقل قول: مشکل در جستجوی کلماتی که حرف ی رو دارند

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

  3. #3
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,759

    نقل قول: مشکل در جستجوی کلماتی که حرف ی رو دارند

    همه رو با ی فارسی عوض کن!

  4. #4
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,808

    نقل قول: مشکل در جستجوی کلماتی که حرف ی رو دارند

    داداش مشکلت از بانکت هست !!!!!!!!!
    برای من utf8-general_ci هست و هیچ مشکلی ندارم
    general_ci تمام زبان ها رو پشتیبانی می کنه و یه کم کار کردن باهاش سخته ، اما درکش کنی که چطوری بخونیش و در بانکش ذخیره کنی هیچ موقع توی برنامه نویسی با زبان مشکل نداری !!

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    کرج
    پست
    238

    نقل قول: مشکل در جستجوی کلماتی که حرف ی رو دارند

    نقل قول نوشته شده توسط galiken_it مشاهده تاپیک
    داداش مشکلت از بانکت هست !!!!!!!!!
    برای من utf8-general_ci هست و هیچ مشکلی ندارم
    general_ci تمام زبان ها رو پشتیبانی می کنه و یه کم کار کردن باهاش سخته ، اما درکش کنی که چطوری بخونیش و در بانکش ذخیره کنی هیچ موقع توی برنامه نویسی با زبان مشکل نداری !!
    اولش هم general_ci بود و کار نمی کرد.الان هم گذاشتمش روی persian_ci باز هم کار نمی کنه.وقتی توی query browser کوئری رو اجرا می کنم یعنی کلماتی که حرف ی رو دارند توی کوئری میارم جواب می ده و مشکلی نداره ولی از توی php که می زنم هیچ جوابی بر نمی گردونه.

  6. #6

    نقل قول: مشکل در جستجوی کلماتی که حرف ی رو دارند

    میدونم منم همین مشکل رو داشتم در واقع با ی فارسی مشکل داره. کافیه که توی رویداد keypress تکس باکس هایی که سرچ روشون انجام میگیره بزاری که هر وقت کاربر زد ی فارسی بشه ي
    if (e.KeyChar == 'ی') e.KeyChar = 'ي';

    هر جا هم که میخوای جستجو کنی اینو تو همون باکس بزار حله

    موفق باشید

  7. #7
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: مشکل در جستجوی کلماتی که حرف ی رو دارند

    راستش همه خیلی پراکنده گفتند ! و اکثر درست !
    این مشکل شما مربوط به داده هایی هست که از طریق کیبورد عربی وارد شده و دو حرف را به مشکل انداخته ! یکی حرف ی و دیگر حرف ک. در کیبورد عربی (معمولا فارسی ساز هایی که توسط شرکت های ایرانی روی ویندوز نصب می شوند این مشکل را دارند) این دو حرف به صورت ي , ك هستند !
    اولا به collation زیاد ربطی نداره ! ولی بهتره collation را کلا utf8_persian_ci بگرین ! که برای فارسی در نظر گرفته شده !
    شما چند راه دارین که هر کدوم معایب و مزایای خودش را داره :
    1 - فرمی که دارین از طریق سایت یا نرم افزار اطلاعات را توش وارد میکنید در زمان رویداد onkeypress رشته های شامل این دو حرف را بر اساس کدی که دارند تشخیص و درستش کنید ! که البته این روش مشکل داره و اگه کاربری copy And paste کنه ! به مشکل میخورین !
    2 - زمانی که دارین رشته ای را در پایگاه ذخیره مکینید با تابع str_replace این حروف را با مقادیر درستش تعویض و سپس در پایگاه ذخیره کنید !
    3 - میتونید یک trigger بنویسین و در زمانی که کاربر update یا insert میکنه رشته ها را با حروف درست تعویض کنید !
    4 - اگه پایگاه داده شما تغییر نمیکنه و دارین برای نمایش استفاده میکنید ! با یک update خیلی ساده رشته های مورد نظر را تصحیح کنید !

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •