ساخت یک فرم نظرسنجی در PHP
در این جا قصد داریم تا نحوه ساخت یک فرم نظر سنجی ساده در PHP را به صورت پروژه عملی نشان دهیم . این پروژه شامل 5 فایل PHP و یک پایگاه داده MySQL است. در هر بخش از راهکار به تشریح یک جزء این پروژه خواهیم پرداخت. به طور کلی این پروژه از چندین بخش اصلی تشکیل شده است:
- بخش اول : که در آن سوال مورد نظر را برای کاربران خود طرح می کنید.
- بخش دوم : که به کاربران شما این امکان را می دهد تا نظر خود را ثبت کنند.
- بخش سوم : در نهایت نیز بخشی که در آن می توانید نتایج حاصل از نظرسنجی را ببینید.
اعضای شبکه مشاوران در حوزه «برنامهنویسی، وب و امنیت سایبری»
تست فایل های دانلود شده برای پروژه :
برای تست فایل های پروژه ، پوشه survey را که درون فایل ضمیمه پروژه قرار دارد ، را یافته و درون پوشه www سرور PHP کامپیوترتان کپی نمایید . برای شروع ، فایل setQyestion.php که برای ایجاد سوال های نظر سنجی طراحی شده است را با تایپ یکی از آدرس های زیر در مرورگر باز نمایید ( پس از اجرای wampserver سرور PHP بر روی کامپیوتان ) :
localhost/survey/setQuestion.php |
127.0.0.1/survey/setQuestion.php |
با زدن دکمه Enter ، مرورگر صفحه طراحی سوال های نظر سنجی را باز نموده ، که همانطور که در بخش پیش نمایش مشاهده نمودید ، حاوی یک فرم ساده HTML برای وارد کردن سوالات است .
اما قبل از تایپ سوال های مورد نظر و زدن هر گونه دکمه ای ، بایستی فایل پایگاه داده برای ذخیره سوال ها و جواب ها را نیز در محل مناسب آن قرار دهید ، وگرنه با پیام خطا مواجه خواهید شد .
برای این منظور پوشه حاوی فایل پایگاه داده به نام mysql/data را در آدرس زیر در سرور PHP ویندوزتان ، کپی نمایید :
C:\wamp\bin\mysql\mysql5.5.8\data |
اگر پایگاه داده به صورت موفقیت آمیز کپی شود ، آدرس زیر را در مرورگر خود تایپ و اجرا نموده تا صفحه سرور phpMyAdmin به صورت زیر باز شود :
/http://localhost/phpMyAdmin> |
نکته : بایستی پایگاه داده surveytest را در بخش پایگاه داده های سرور ( databases ) مشاهده نمایید ، در اینصورت فایل های پایگاه داده بر روی ویندوز شما به صورت صحیح نصب نشده اند .
طراحی پایگاه داده لازم برای فرم نظر سنجی
در مرحله قبل، پنجره سرور پایگاه داده MySQL یا phpMyAdmin را باز کردید . در حالی که این پنجره باز است، بر روی کادر کشویی “Please select a database” کلیک نمایید ، تا لیست پایگاه های داده نصب شده بر روی سیستم نصب شده اند، باز شود. پایگاه داده surveytest بایتسی درون لیست موجود باشد.
نکته 1 : اگر شما نمی توانید پایگاه داده surveytest را در لیست فوق مشاهده نمایید ، احتمالا فایل های پایگاه داده را در مسیر صحیح قرار نداده اید .
نکته 2 : پایگاه داده surveytest را از کادر کشویی Databases انتخاب نمایید، سپس دو جدول موجود در آن به صورت زیر نشان داده می شود:
می توانید با کلیک بر روی نام های جداول ، ساختار آنها را مشاهده نمایید . همچنین با کلیک بر روی دکمه Browse ، همانند تصویر زیر ، اطلاعات موجود در هر کدام از جدول ها را مشاهده نمایید :
معرفی جدول tblQuestions :
بر روی دکمه Browse در مقابل نام جدول کلیک نمایید . محتویات آن به صورت زیر نمایش داده می شود . همانطور که می بینید این جدول دارای 5 فیلد اصلی به شرح زیر است :
- QID
- Question
- qA
- qB
- qC
جدول tblQuestions تاکنون دارای 4 رکورد اطلاعاتی است که هر رکورد ، مشخصات یک سوال را نگهداری می کند .
فیلد QID ، شناسه هر سوال بوده و در این جدول کلید اصلی نیز است ( Primay Key ) ، یعنی نباید مقدار این فیلد در هیچ دو رکورد یکسان باشد . از این شناسه برای تشخیص سوال در سطح برنامه استفاده می شود .
فیلد QID به همین صورت نیز در جدول answers وجود داشته و این امکان را به ما می دهد تا دو جدول را به هم پیوند بزنیم . سپس اطلاعات ترکیبی مورد نظر خود را از هر دو جدول ، استخراج نماییم .
همچنین فیلد Question شامل شرح سوال و فیلدهای qA , qB , qC به ترتیب گزینه های هر سوال را شامل می شوند .
جدول answers :
در بخش بعدی با کلیک بر روی دکمه Browse مقابل جدول answers به بررسی آن خواهیم پرداخت . محتویات این جدول در ابتدای کار به صورت زیر است :
جدول answers شامل 5 فیلد است . فیلد ID در این جدول شناسه هر پاسخ بوده و کلید اصلی جدول می باشد . این فیلد ، یک فیلد با قابلیت افزایش خودکار ( auto increcement ) است که به ازای اضافه شدن هر رکورد ، خودکار یک واحد افزایش می یابد .
همچنین این جدول دارای فیلد QID است که در جدول tblQuestions نیز وجود داشت و شناسه هر سوال را نگهداری می کند . فیلد QID در جدول answers کلید خارجی بوده و برای اتصال به جدول tblQuestions مورد استفاده قرار می گیرد .
فیلدهای A , B و C نیز به ترتیب تعداد رای های هر گزینه سوال را نگهداری می کنند .