امتیاز دهید:

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

1 how to delete a record from database MySQL

در این آموزش قصد داریم ببینیم که به چه شکل می توان یکی از این رکوردها را حذف کرد. برای حذف یک رکورد از داخل جدول، می بایست از دستوری تحت عنوان DELETE استفاده نمود. در حین استفاده از این دستور اس کیو ال همواره به خاطر داشته باشیم که می بایست با احتیاط عمل کنیم چرا که اگر شروط مورد نیاز را در حین استفاده از این دستور اعمال نکنیم، این احتمال وجود دارد که به اشتباه کلیه رکوردهای ثبت شده در دیتابیس حذف شوند. برای این منظور، فایل index.php از آموزش گذشته را مد نظر قرار می دهیم:

همانطور که در کد فوق مشاهده می شود، پس از ایجاد یک کانکشن و انتخاب دیتابیس، با استفاده از دستور if سنجیده ایم که آیا پاسخ به کوئریمان تحت عنوان query برابر با true است یا خیر. اگر true بود دستورات داخل کروشه های مرتبط با این شرط اجرا می شوند که عبارتند از ایجاد یک متغیر تحت عنوان sql که حاوی یکسری کدهای اس کیو ال است. ابتدا دستور DELETE را نوشته ایم که مسئول حذف چیزی از داخل دیتابیس است. سپس کلیدواژه FROM را نوشته ایم (توجه داشته باشیم که بر خلاف دستور SELECT که در کنار آن می توانستیم از علامت * برای انتخاب همه رکوردها استفاده کنیم، در کنار دستور DELETE نمی توان این کار را انجام داد.)
سپس نام جدول مد نظر خود که قصد داریم از داخل آن چیزی را حذف کنیم را داخل علامت های Grave یا همان علامت های ` ` می نویسیم. در نهایت هم یک شرط قرار می دهیم و آن هم اینکه از میان کلیه ردیف های ثبت شده داخل دیتابیس، این دستور می بایست ردیفی را حذف کند که شناسه آن برابر با 3 باشد.
سپس متغیر دیگری ایجاد کرده ایم تحت عنوان deletion به معنی "حذف" که مقدار آن برابر است با متد mysql_query که دو پارامتر را به آن پاس داده ایم که پارامتر اول برابر است با متغیر sql و پارامتر دوم هم my_connection. مجدد از یک دستور شرطی if دیگر استفاده نموده ایم تا بسنجیم ببینیم که آیا مقدار deletion برابر با true است یا خیر. اگر اینطور بود که دستور داخل if که عبارت است از نمایش عبارت !Record Deleted به معنی "رکورد حذف شد!" نمایش داده می شود و در صورتی هم که مقدار false بازگردانده شود، دستور داخل else اجرا می شود که عبارت است از نمایش عبارت .Failed to delete the record به معنی "عدم موفقیت در حذف رکورد." اکنون می توانیم یک بار کد خود را داخل مرورگر اجرا کنیم:

2 how to delete a record from database MySQL

می بینیم که کوئری با موفقیت ارسال شد. اکنون نگاهی هم به phpmyadmin می اندازیم:

3 how to delete a record from database MySQL

می بینیم که رکورد سوم با موفقیت حذف شد.


نظرات
نظرات
  • علی :

    سلام، ممنون از مطلب مفیدتون اما من به یک مشکل برخوردم اونم اینکه فیلد آی دی رو از نوع AUTO_INCREMENT انتخاب کردم و بعد از حذف رکورد و درج رکورد جدید، مقدار آی دی با شماره جدید مقدار میگیرد. به عنوان مثال وقتی 2 رکورد دارم و هردو را حذف میکنم و رکورد جدید را ذخیره میکنم مقدار 3 میگیرد در حالی که با حذف دو رکورد قبلی انتظار میرود مقدار 1 بگیرد اما مقدار 3 را میگیرد. برای حل این مشکل پیشنهادی دارید؟


    1396/06/21 12:07:55
  • حسام آقاجانی :

    عالی کلی دنبالش گشتم خیلی ممنون .


    1396/01/14 15:07:28

برای کامنت گذاری، فرم زیر را پر کنید یا ثبت نام کنید ( جهت ورود به سیستم می توانید از استفاده کنید )