استفاده از دستورات Crud در Php جهت آشنایی بیشتر با دستورات بانک اطلاعاتی - نسخهی قابل چاپ +- انجمن عمومی گسترش فناوری آگو (http://forums.ago.ir) +-- انجمن: انجمن های عمومی گسترش فناوری آگو (/forumdisplay.php?fid=1) +--- انجمن: برنامه نویسی (/forumdisplay.php?fid=13) +--- موضوع: استفاده از دستورات Crud در Php جهت آشنایی بیشتر با دستورات بانک اطلاعاتی (/showthread.php?tid=2193) |
استفاده از دستورات Crud در Php جهت آشنایی بیشتر با دستورات بانک اطلاعاتی - agotd - 11-18-2013 03:23 PM این دستورات و کدها شاید واسه یک برنامه نویس که اولین زبان برنامه نویسی او Php باشد ساده باشد , ولی واسه کسی که به تازگی وارد حیطه برنامه نویسی Php شده یا خواهان وارد شدن باشد کدهای ارزشمند و قابل توجهی باشند در این آموزش قصد استفاده از دستورات Crud یعنی Create , Read , Update و Delete را داریم . جهت کار کردن با دستورات بانک اطلاعاتی در Php باید بتوانید به سرور مورد نظر سپس به بانک اطلاعاتی مورد نظر سپس با انتخاب جدول مورد نظر , به اعمال Query میپردازیم . در ابتدا ما باید یک پایگاه داده داشته باشیم که این پایگاه داده میتواند حاوی ۱ یا چند جدول باشد در این آموزش ما پایگاه داده ایی به نام Crud رو با استفاده از Mysql_server ایجاد میکنیم که حاوی یک جدول به نام Info و این جدول شامل ۳ فیلد به نامهای Name , Family , Id میباشد . ارتباط میان Php و Mysql بعد از ساختن پایگاه داده , در این مرحله باید بتوانیم ارتباطی میان Php و Mysql برقرار کنیم تا بتوانیم Query مورد نظر را بر روی جداول پایگاه داد اعمال کنیم جهت برقرای ارتباط به شکل زیر عمل میکنیم . کد php: /* Connect to server to select the database */ Mysqli , PDO کلاسهای مجزا جهت کار کردن با دستورات بانک اطلاعاتی در Php میباشند که قابلیتهای بیشتری نسبت به توابع Mysql دارند شما میتوانید علاوه بر این توابع Mysql از این کلاسها استفاده کنید . جهت آشنایی بیشتر با این کلاسها میتوانید به این PDO , Mysqli مراجعه کنید . همانطوری که از دستورات بالا میتوانیم مشاهده کنیم جهت وصل شدن به سرور از تابع Mysql_connect استفاده کردیم که آرگومانهای ورودی به ترتیب Server_name : نام سروری که خواهان وصل شدن به آنرا داریم User_name : نام کاربری که جهت وصل شدن به سرور باید تعریف شود . Password : کلمه عبور که جهت وصل شدن به سرور باید تعریف شود . خروجی این تابع True یا False میباشد , در صورت True بودن لینکی را که جهت وصل شدن به پایگاه داده استفاده میشود ایجاد میکند در غیر اینصورت False را برگشت خواهد داد که بلافاصله دستور شرطی IF اجرا شده و خطای موجود در آرگومانهای ورودی را با استفاده از تابع die و Mysql_error به کاربر نمایش خواهد داد die : از این تابع جهت خارج شدن یا بستن تابعی میباشد که خطاء را ایجاد کرده است و همانند تابع exit کار میکند. Mysql_error : تابعی جهت نمایش دادن خطای فعلی (که در ارتباطات یا دستورات فعلی پایگاه داده ایجاد شده) استفاده میشود. در غیر اینصورت به مرحله بعدی میرویم و با استفاده از تابع Mysql_select_db بانک اطلاعاتی مورد نظر را انتخاب خواهیم کرد که این تابع دارای ۲ آرگومان به ترتیب Database_name : نام پایگاه داده که خواهان وصل شدن به آنرا داریم Connection : رشته اتصالی که با استفاده از تابع Mysql_connect تعریف کردیم و مقدار را در متغیری به نام Con ریختیم بعد از پر کردن آرگومانها با مقادیر مورد نظر نتیجه را در متغیری به نام Database ذخیره میکنیم تا از صحت وجود پایگاه داده با استفاده از دستور شرطی If مطمئن شویم . دستور Insert بعد از وصل شدن به پایگاه داده نوبت به Query زدن میرسد . قبل از استفاده از دستور Insert باید با استفاده از دستور Select از وجود نداشتن رکوزدی با همچنین مشخصاتی مطمئن شویم ولی در دستورهای Update و Delete برعکس میباشد و باید با استفاده از دستور Select مطمئن شویم که رکوردها در جدول مورد نظر وجود داشته باشند . کد php: $name = "mohammad"; همانطوری که از کد بالا میتونید مشاهده کنید ۳ متغیر مطابق با فیلدهای جدول تعریف کردیم که ۳ مقدار مختلف به آن داده شده است , بعد از آن با استفاده از تابع Mysql_query نوبت به انتخاب کردن رکورد مورد نظر میرسد دلیل این کار را هم قبلاً توضیح دادیم , به این دلیل است که اگر رکوردی از قبل با این مقادیر ذخیره شده باشد رکورد دیگری با این مقادیر در جدول ذخیره نشود . بعد از ریختن نتیجه در متغیری به نام select_query بلافاصله با دستور شرطی if روبرو شده که در صورت درست بودن Query از تابع Mysql_num_rows جهت شمارش تعداد رکوردهای برگشت داده شده استفاده میکنیم که اگر تعداد آنها ۰ بود به معنی اینکه رکوردی با همچنین مشخصاتی در پایگاه داده وجود ندارد . لذا با استفاده دوباره از دستور Mysql_query مقادیر خود را در جدول مورد نظر ذخیره میکنیم . دستور Update روتین اجرای این دستور همانند دستور Insert یکسان میباشد . ولی همانطور که گفته شد قبل از اجرای دستور باید چک کنیم که آیا این رکورد در پایگاه داده وجود دارد یا خیر و علاوه بر این باید چک کنیم که آیا اطلاعات همسانی با اطلاعات جدیدی که میخواهیم ویرایش کنیم در پایگاه داده وجود دارد یا خیر . کد php: $name = "ali"; فکر نکنم مشکلی با کدهای بالا داشته باشید در ابتدا رکورد مورد نظرمون رو جستجو کردیم بعد از آن اطلاعاتی جدید خود را جستجو کردیم (جهت اطمینان از اینکه اطلاعات همسانی وجود ندارند ) بعد از با استفاده از تابع Mysql_query و دستور Sql ویرایش اطلاعاتی خود را ویرایش کردیم. دستور Delete دستور Delete هم دقیقا مثل دستور ویرایش از وجود داشتن رکورد مورد نظر باید اطمینان پیدا کنیم . کد php: $id = 2; دستور Select در هر ۳ دستور بالا از دستور Select استفاده کردیم ولی فقط نتیجه را به صورت تعداد رکوردها یا سطرها بازیابی میکردیم , ولی در این قسمت میخواهیم رکوردها را به صورت جدولی یا Table بازیابی و نمایش دهیم . کد php: $select_query = mysql_query("select * from info"); همانطور که میدونید ما در فایل Php میتوانیم از کدهای Html , JavaScript و Css استفاده کنیم. ما در کد بالا از کدهای Html استفاده کردیم. خوب همانطوری که میتوانید مشاهده کنید در ابتدا جدول مورد نظرمان را با استفاده از تابع Mysql_query انتخاب کردیم سپس اطلاعات Select شده را با استفاده از تابع Mysql_fetch_array واکشی و در متغیری به نام Fetch_record ریختیم که نتیجه واکشی یک آرایه میباشد . تایع Mysql_fetch_array هر سطر از جدول بانک اطلاعاتی را به صورت یک آرایه تک بعدی نشان میدهد لذا جهت اینکه تمامی سطرهای بک جدول را واکشی کنیم از حلقه While یا For میتوانیم استفاده کنیم . قبل از اینکه حلقه While را اجرا کنیم همانطوری که میبیند جدولی ساختیم که مقادیر Id , name , family در ستونهای این جدول قرار میگیرند . بعد از اجرای حلقه هر بار تابع Mysql_fetch_array فراخوانی شده و مقادیم نسبت به همان سطر واکشی میشوند . همانطوری که در بلاک حلقه میتوانید مشاهده کنید بعد از واکشی اطلاعات هر داده را در تگ TD قرار دادیم به ترتیب Id , name , family که نتیجه کد بالا به صورت زیر میباشد . |