PDA

View Full Version : آموزش: replace در بانک اطلاعاتی توسط دستور sql



رضا قربانی
شنبه 08 بهمن 1390, 18:07 عصر
با سلام خدمت همگی دوستان

گاهی ممکن است کلمه ای را چندین بار در سایت خود وارد کرده باشید، مثلا در متن های مختلف سایت خود، (فرض بر این است که متن ها در دیتابیس ذخیره می شوند) کلمه ی ABC را نوشته اید. پس از مدتی مثلا ۱ سال بعد! تصمیم می گیرید همه ی کلمه های ABC را با الف.ب.پ جایگزین کنید.
در طول این مدت نسبتا طولانی ممکن است هزاران بار کلمه ی ABC را در متن های مختلف سایت خود نوشته باشید. پس انجام این جایگزینی بصورت دستی کاری بس دشوار است.
با نوشتن یک کوری (query) و اجرای آن، انجام جایگزینی متن یا کلمات در دیتابیس بسیار سریع و ساده خواهد بود. در این کوئری از تابع Replace در mysql استفاده شده.



update table_name set `field_name` = replace(`field_name`, ‘ABC’, ‘الف.ب.پ’);
table_name نام جدولی است که می خواهید مقادیر در آن جایگزین شوند.
field_name نام فیلدی از جدول مورد نظر است که می خواهید مقادیر در آن جایگزین شوند.
با اجرای کد بالا در بخش SQL برنامه ی تحت وب PHPMyAdmin عبارت های ABC با الف.ب.پ جایگزین می شوند.
اگر می خواهید عبارت مورد نظر در جدول ها و فیلد های مختلف پیدا و جایگزین شوند، باید کد را برای جدول ها و فیلد های مورد نظر آن جدول اجرا کنید.


امیدوارم که مثبت واقع شده باشد.
موفق باشید

tux-world
شنبه 08 بهمن 1390, 19:28 عصر
ممنون من این مشکل رو با حرف "ی" دارم تو لینوکس که دارم طراحی و برنامه نویسی میکنم زیرش نقطه نمیذاره ولی دادم بچه ها میگن تو ویندوز زیر حرف "ی" دو تا نقطه داریم که باعث میشه جستجو و بقیه چیزها کار نکنن. به نظرتون این ترفند مشکل رو حل میکنه؟

رضا قربانی
یک شنبه 09 بهمن 1390, 10:56 صبح
باید از کد اسکی استفاده کنی . حالا حرف این "ی" مد نظرتونه ، من نمی دونم چنده

یک سری لیست کدهای اسکی همراه با استفاده در جاهای مختلف و کدهای اچ تی ام ال واستون می ذارم تا جریان کار بیاد دستتون .

هم در php می تونی موقع درج از تابع replace استفاده و هم می تونید از روش بالا استفاده کنید

8164181640

باد کد اسکیش رو پیدا کنی



یا یک فکر و ایده برای پیدا کردن کد اسکی مورد نظر شما :
این اولین کد اسکی می شه & # 1 ; ==> و اینو بنداز داخل حلقه و تا جایی که امکان داره بهش اضافه کن تا کد اسکی حرفت رو پیدا کنی و بعد ازش استفاده کن این ادیتور سایت نمیذاره کد رو به شما نمایش بدم ولی توی عکس هست از 32 شروع شده







موفق باشید

رضا قربانی
یک شنبه 09 بهمن 1390, 11:03 صبح
اینم هست یادم رفت واستون بذارم

81642

tux-world
یک شنبه 09 بهمن 1390, 11:51 صبح
ببينيد اين "ي" رو الان رو ويندوز تايپ كردم با تيپيك قبليم مقايسه كنيد ميبينيد اون حرفي كه قبل تاپيك شما نوشتم زيرش نقطه نداره ولي الان رو ويندوز داره.
حروف "ي" كه شما هم نوشتيد نقطه ندارن زيرشون. اگه ويندوز داريد فونت تاهوماتون با ماله ما چه فرقي داره؟

MMSHFE
یک شنبه 09 بهمن 1390, 19:00 عصر
مشکل ارتباطی به فونت نداره. مربوط به CodePage هست. احتمالاً ایشون روی ویندوزشون صفحه کلید فارسی نصب کردن (مثل من). این راه رو امتحان کنید:
یکبار توی ویندوز با کمک تابع ord کد ی عربی (با دو نقطه زیر) رو بدست بیارین.
یکبار هم توی لینوکس با کمک همون تابع کد ی فارسی (بدون دو نقطه زیر) رو استخراج کنید.
حالا میتونید ازطریق کد، کارکترها رو جایگزین کنید.
موفق باشید.

رضا قربانی
دوشنبه 10 بهمن 1390, 10:07 صبح
ببينيد اين "ي" رو الان رو ويندوز تايپ كردم با تيپيك قبليم مقايسه كنيد ميبينيد اون حرفي كه قبل تاپيك شما نوشتم زيرش نقطه نداره ولي الان رو ويندوز داره.
حروف "ي" كه شما هم نوشتيد نقطه ندارن زيرشون. اگه ويندوز داريد فونت تاهوماتون با ماله ما چه فرقي داره؟

بستگی به ویندوز هم داره . این فونت هایی که واستون آپلود کردم رو دانلود ، توی پوشه فونت (کنترل پنل) کپی و جایگزین فونت های قبلی و سیستم رو یکبار ریست کنید .

http://www.8pic.ir/images/5grkr3y5lgow8fz5zl9b.zip

شاید مشکلتون حل شد

tux-world
دوشنبه 10 بهمن 1390, 11:52 صبح
اكه اينها رو تو fontface@ تعريف كنم اين مشكل براي كسايي كه رو ويندوز اين حالت براشون پيش مياد درست ميشه؟

reza10wert
یک شنبه 19 شهریور 1391, 07:54 صبح
اگر بخواهم اعداد به صورت فارسي در بانك ذخيره بشه يا نمايش داده بشه بايد چه كنم ؟
مثلا نميخوام 3 باشه ميخوام 3 فارسي نوشته بشه

ممنون

رضا قربانی
یک شنبه 19 شهریور 1391, 16:57 عصر
اگر بخواهم اعداد به صورت فارسي در بانك ذخيره بشه يا نمايش داده بشه بايد چه كنم ؟
مثلا نميخوام 3 باشه ميخوام 3 فارسي نوشته بشه

ممنون
در مورد توابع جلالی سرچ کنید : http://barnamenevis.org/showthread.php?288698-%D9%87%D9%85%D9%87-%DA%86%DB%8C%D8%B2-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A8%D8%A7-%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-%D8%AC%D9%84%D8%A7%D9%84%DB%8C-%28%D8%AC%D8%AF%DB%8C%D8%AF%29

اینم سایت رسمیش : http://jdf.scr.ir

hasanak852
پنج شنبه 28 شهریور 1392, 12:52 عصر
ممنون من این مشکل رو با حرف "ی" دارم تو لینوکس که دارم طراحی و برنامه نویسی میکنم زیرش نقطه نمیذاره ولی دادم بچه ها میگن تو ویندوز زیر حرف "ی" دو تا نقطه داریم که باعث میشه جستجو و بقیه چیزها کار نکنن. به نظرتون این ترفند مشکل رو حل میکنه؟
حرف "آ" با "ا" چه فرقی داره؟
تلفظشون یکیه و معنیشون هم یکی، ولی برای کامپیوتر دوتا حرف متفاوت اند
همینطور برای "ی" و "ي" که برای سیستم دوتا حرف مختلفند،
در اصل اولی مال زبون فارسیه، دومی عربی.
شما باید با استفاده از تابع str_replace توی پی اچ پی یا replace توی اس کیوال حرف "ی" رو جایگزین حرف "ي" کنی
من این مشکل رو توی نرم افزار های کتابخانه آستانقدس هم دیدم
اونا داده ها رو با "ي" عربی ذخیره کردن و هنگام جستجو وقتی از "ی" فارسی استفاده کنی نتیجه ای نمیاره
برای همین اکثرا با جستجو منابع این کتابخونه مشکل دارن!

ابوذر محمودی
پنج شنبه 28 شهریور 1392, 18:20 عصر
به تاریخ پست ها هم دقت کنین دوست عزیز ، ایشون در بهمن 1390 یه سوالی کردن ، تا حالا به جواب رسیدن و خودشم دیگه یادش نمیاد که همچین مشکلی قبلاً داشته .

hasanak852
پنج شنبه 28 شهریور 1392, 19:55 عصر
به تاریخ پست ها هم دقت کنین دوست عزیز ، ایشون در بهمن 1390 یه سوالی کردن ، تا حالا به جواب رسیدن و خودشم دیگه یادش نمیاد که همچین مشکلی قبلاً داشته .
راس میگیها!
چرا خودم ندیدم!!!!

رضا قربانی
یک شنبه 03 مرداد 1395, 13:33 عصر
update `tbl_name` set
`text` = replace(`text`, 'ك', 'ک') ,
`text` = replace(`text`, 'ي', 'ی');



query SQL
جایگزین کردن کلمات در بانک اطلاعاتی . اینایی که رکورد خراب وارد بانک کردن و در جستجو با مشکل روبرو شدن به این صورت تصحیح کنند . دستور بهینه شده .