دیتابیس در php

saalek110

Well-Known Member
میشه در یک فایل کارها را انجام داد ، این طور که فایل به خودش پاس بده ، اگر دنبال این هستید تاپیک ساخت بازی با php من را ببینید:


 

saalek110

Well-Known Member
آموزشهای زیادی در این مورد در اینترنت هست ، جاهایی که من کم توضیح دادم را اونجا ببینید.
مثلا ساخت دیتابیس و تیبل به شکل دستی ، ممکن است در آموزشهای دیگران تصویری موجو باشد.
 

saalek110

Well-Known Member
اگر در گوشی می خواهید کار کنید نرم افزار اندرویدی زیر را دانلود کنید:


یک فایل html برای فرم بسازید و یک فایل php و از فایل اولی پاس بدهید به دومی. در این نرم افزار می تونید فایلهایی کنار هم بسازید.
 

saalek110

Well-Known Member

رفع مشکل نمایش حروف فارسی در MySQL​


دلیل اصلی مشکل تغییر حروف فارسی به ؟ یونیکدهای داخل دیتابیس است که شما می‌توانید از طریق PHPMyAdmin به تصحیح آن بپردازید.

1- برای تنظیم Unicode از طریق پنل هاست خود به بخش PHPmyAdmin بروید.

2- حال بر روی دیتابیس مورد نظر کلیک کنید و سربرگ Operations را انتخاب کنید.

3- دربخش Collation فرمت را به utf_8 persian ci تغییر داده و بر روی Go کلیک کنید تا تغییرات اعمال گردد.

حال از این به بعد تمامی اطلاعات ذخیره شده بدون هیچ مشکلی و به صورت صحیح در دیتابیس ذخیره می‌گردند.


دقت داشته باشید اطلاعات قبلی که در دیتابیس ذخیره شده‌اند قابلیت بازگشت به حروف فارسی را نداشته و اطلاعاتی که پس از تنظیم یونیکد ذخیره می‌گردند ، با حروف فارسی در دیتابیس جای خواهند گرفت.


سالک: من نوع داده ستونی که می خواستم فارسی درش بنویسم را هم به utf_8 persian ci تغییر دادم. حالا شاید اضافه یا غلط بود. ولی لازم بود بگم. در پست بعد هم توضیحاتی داده شده.
 
آخرین ویرایش:

saalek110

Well-Known Member
روش دوم:

روش دوم : تنظیم و استانداردسازی ارتباط دیتابیس​

شما می‌توانید جهت استانداردسازی ارتباط با دیتابیس و ثبت اطلاعات از تکه کد زیر استفاده نموده تا بدون مشکل ، ارتباطات از همان ابتدا به صورت Unicode شده و یا استاندارد utf8 برقرار شود.

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

PHP:
mysql_query(“SET CHARACTER SET utf8″);
سالک: در تاپیک سایت خود را بسازید ، من گفتم که با نوشتن خط بالا قبل نوشتن و خواندن جداول دیتابیس، حروف فارسی در دیتابیس خوانا خواهد بود.وگرنه به شکل حروف عجیب و غریب در می آید. لینک تاپیک:


در مورد collation ستون هایی که قراره متن ها درش قرار بگیرد ، فکر کنم باید نوعش utf8 باشد. انواع مختلفی از utf8 استفاده شده که هر یک ویژگی های خاص خود را دارد. چند پست بعد در همین تاپیک در مورد collation صحبت شده.
 
آخرین ویرایش:

saalek110

Well-Known Member

روش سوم : تنظیم یونیکد از طریق ارسال Header در PHP​

شما می‌توانید همانند روش قبلی ، این کد را در ابتدای کد صفحات PHP خود قرار داده تا مشکل نمایش حروف فارسی در MySQL را نداشته باشید.

header('Content-Type: text/html; charset=utf-8');
بدین ترتیب شما می‌توانید مشکلات پیش آمده برای حروف فارسی و همچنین دیتابیس خود را با روش‌های بالا تغییر داده و بدون مشکل به کار خود ادامه دهید.

البته دقت داشته باشید که اگر از زبان فارسی در فایل‌های PHP و سایر فایل‌های کدنویسی شده ، استفاده کرده‌اید ؛ آنها را نیز باید با یونیکد Utf8 ذخیره کرده تا حروف فارسی بدون مشکل به شما نمایش داده شود.
 

saalek110

Well-Known Member
من امروز با این نرم افزار تونستم mysql هم در گوشی داشته باشم:

AWebServer ( Http Web Server A - Apps on Google Play

با هاپ وب و این نرم افزار یک چیز کامل شد.
تیبل های دیتابیس را با یک فایل اکسپورت کردم و در این نرم افزار ایمپورت کردم.
فایلهای سایتم را هم دانلود کردم ، حالا کل سایتم روی گوشی است.
 

saalek110

Well-Known Member
یک character set مجموعه ای از نشانه ها (symbols) و اینکودینگ ها می باشد.
یک collation مجموعه ای از وظایف برای مقایسه کاراکتر ها در character set می باشد.




در حین ایجاد یک ستون برای جداول خود در پایگاه داده می توانید Collation آن را نیز تغییر دهید. در صورتی که می خواهید از نوشته های یونیکد مانند فارسی استفاده کنید ضروری است که از یونیکدهای زیر مجموعه utf8 استفاده کنید.

در زیر مجموعه های UFT8 سه گزینه وجود دارد که شما با انتخاب هر کدام از این سه گزینه، میتوانید کاراکترهای زبان فارسی را به خوبی در پایگاه داده ذخیره کنید . اما آیا تا به حال با خود فکر کرده اید که چه تفاوتی بین این سه گزینه وجود دارد ؟

گزینه های موجود عبارتند از utf8_unicode_ci ، utf8_general_ci و utf8_persian_ci .

در واقع این سه گزینه تنها در یک مورد با هم در تفاوت هستند و آن هم الگوریتم مرتب سازی آن ها می باشد.




– اگر قصد دارید فقط متن های فارسی خود را در فیلد خود ذخیره کنید از utf8_persian_ci استفاده کنید زیرا با بیشترین سرعت ممکن و بهترین دقت متن‌ های فارسی را به درستی مرتب می‌کند.

– اگر قصد دارید هم متن فارسی هم انگلیسی استفاده کنید (و یا از چند زبان همزمان) انتخاب یکی از گزینه‌های utf8_general_ci و utf8_unicode_ci شما را به هدف می‌رساند.

utf8_general_ci تفاوت اندکی با utf8_unicode_ci دارد و آن این است که بخشی از الگوریتم‌های یونیکد در آن پیاده نشده است و ممکن است در هنگام مرتب‌سازی برخی زبان‌ها اشتباهاتی در آن مشاهده شود. در عوض کارایی آن بهتر است .




* * *

سوال : من وقتی collation schema پایگاه داده MySQL خودم رو utf8_general_ci می گذارم هیچ مشکلی با حروف و کلمات فارسی ندارم ولی دیدم که یک collation دیگر با نام utf8_persian_ci نیز وجود دارد. می خواستم بدونم چه مزیتی نسبت به utf8_general_ci دارد؟

جواب : تفاوت این دو گزینه در مرتب سازی بر اساس حروف الفبا (Sort) می باشد.

هنگامی که که از utf8_persian_ci استفاده کنید حروف صرفا فارسی (پ چ ژ گ) در جای خود سورت می شوند یعنی پ بعد از ب می آید، چ بعد از ح می آید و ..

اما در utf8_general_ci حروف “پ چ ژ گ” در انتها و بعد از ی می آیند.

منبع:



سالک: در تاپیک سایت خود را بسازید،


به روش saalek110 توضیحات دیگری در باره collation داده شده و گفته شده اگر می خواهید در دیتابیس حروف فارسی خوانا باشد ، موقع نوشتن و خواندن دیتابیس به شکل utf8 کار کنید. باید یک خط کد ، قبل کار با جداول دیتابیس اضافه کنید. خط زیر: (از صفحه ۵ به بعد خط زیر در کار با دیتابیس هست)

PHP:
mysqli_set_charset($ccoonn, "utf8");

در یک تاپیک دیگر که در مورد ساختار فروم phpbb بررسی کردم ، collation هایش را بررسی کردم.


در پست ۴ تاپیک بالا نوشتم:

ستون های متنی utf8 bin است. ولی سابجکت پست utf8_unicode_ci است.
دلیل دیلت پست varchar 255 کاراکتری است.. دلیل ادیت هم varchar است. ولی خود پست مدیوم تکست است

.
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا