در قسمت قبلی آموزش با نحوه اتصال به بانک های اطلاعاتی در php آشنا شدیم. در این قسمت از آموزش php با نحوه درج اطلاعات در جدول های بانک اطلاعاتی یا پایگاه داده آشنا می شویم. همان طور که قبلا گفتیم عملیات در بانک های اطلاعاتی 4 مورد اصلی دارد که درج یکی از آن هاست.
عملیات درج در پایگاه داده
برای درج اطلاعات در ادامه پروژه cms که در قسمت قبلی ساختیم باید یک فرم برای درج اضافه کنید. در پوشه cms یک فایل جدید به نام insert.php بسازید. در این فایل یک فرم برای درج مطلب در جدول پست طراحی می کنیم. از آنجا که دو فیلد در جدول داریم باید در فرم نیز دو فیلد تعریف کنیم. یکی برای عنوان و یکی برای متن. حال کد زیر را در فایل index.php قرار دهید.
<!DOCTYPE html> <html dir="rtl" lang="fa-IR"> <head> <title>درج مطلب</title> <meta charset="utf-8" /> </head> <body style="font-family: tahoma; font-size:14px;"> <center> <form action="sendpost.php" method="post"> عنوان مطلب : <input type="text" name="postTitle" size="40"><br> متن مطلب: <br> <textarea name="postText" rows="10" cols="50"></textarea> <br> <input type="submit" value="ثبت مطلب"> </form> </center> </body> </html>
در کد بالا یک فیلد به نام postTitle برای عنوان و یک فیلد به نام postText برای متن است. همچنین محتویات فرم با متد post به صفحه ای به نام sendpost.php ارسال می شود. این فایل را ایجاد کرده و کد زیر را در آن قرار دهید.
<!DOCTYPE html> <html dir="rtl" lang="fa-IR"> <head> <title>درج مطلب</title> <meta charset="utf-8" /> </head> <body style="font-family: tahoma; font-size:14px;"> <center> <?php include ("config.php"); $title = trim ($_POST['postTitle']); $text = trim ($_POST['postText']); if($title != "" && $text != ""){ $query_res = mysql_query("INSERT INTO `posts` (`title`, `text`) VALUES ('$title','$text')"); if($query_res){ echo "مطلب شما با موفقیت در بانک داده درج شد."; }else{ echo "مشکلی در ثبت مطلب رخ داده، لطفا مجددا تلاش کنید. <a href=insert.php>بازگشت</a>"; } }else{ echo 'برای درج مطلب جدید باید عنوان و متن مطلب را وارد کنید. <a href=insert.php>بازگشت</a>'; } ?> </center> </body> </html>
توضیح کد فوق:
ابتدا فایل config.php را که در جلسه قبل ساختیم، فراخوانی کرده ایم. سپس مقادیر وارد شده در فیلد ها را در دو متغیر ذخیره کرده ایم. سپس با یک دستور if بررسی کرده ایم که مقداری در فیلد ها وارد شده یا نه. اگر وارد نشده پیغام مناسب را نمایش می دهیم، اگر وارد شده باشد عملیات درج انجام می شود.
با استفاده از تابع mysql_query مقادیر وارد شده توسط کاربر را به جدول وارد می کنیم. این تابع دو خروجی دارد که با دستور if آن را بررسی می کنیم. اگر true باشد عملیات درج با موفقیت انجام شده و پیغام مناسب را نمایش می دهیم. در غیر این صورت درج انجام نشده و باید پیغام مناسب را نمایش داده و کاربر به صفحه insert.php بازگردد.
اگر درست انجام داده باشید مراحل را به صورت زیر مشاهده خواهید کرد. می توانید مطالب را یکی یکی درج کنید، مثلا سومین مطلبی که درج می کنیم در تصویر نشان داده شده:
پس از زدن دکمه ثبت تصویر زیر را می بینید.
توضیحاتی در مورد کوئری درج:
برای درج اطلاعات از کوئری زیر استفاده می کنیم.
INSERT INTO `TABLE_NAME` (`f1`, `f2`) VALUES ('value1', 'value2')
در پرانتز اول نام فیلد های رکورد یا سطری که قصد درج آن در جدول را داریم می نویسیم. احتمالا این سوال برای شما پیش می آید که جدول پستی که در جلسه قبل طراحی کردیم در هر سط 3 فیلد دارد ولی ما در کد های فوق دو فیلد درج کردیم. دلیلش این است که فیلد id یا شناسه را به صورت AUTO_INCREMENT تعریف کرده ایم. این بدان معناست که با هر بار پر کردن یک رکورد به صورت اتوماتیک یکی به مقدار این فیلد اضافه می شود و لازم نیست که آن را به صورت دستی وارد کنیم. پرانتز بعدی برای گرفتن مقادیر فیلد ها می باشد که در مثال فوق این مقادیر را در دو متغیر قرار داده بودیم و توسط کاربر وارد می شد.
اطلاعات درج شده در جدول را می توانید از طریق آدرس http://127.0.0.1/phpmyadmin مشاهده کنید. در آن جا ابتدا روی دیتابیس cms و سپس روی جدول posts کلیک کنید.
دیدگاه خود را بنویسید