آموزش زبان PHP | ساخت یک فرم نظرسنجی

ساخت یک فرم نظرسنجی در PHP

در این جا قصد داریم تا نحوه ساخت یک فرم نظر سنجی ساده در PHP را به صورت پروژه عملی نشان دهیم .  این پروژه شامل ۵ فایل PHP و یک پایگاه داده MySQL است . در هر بخش از راهکار به تشریح یک جزء این پروژه خواهیم پرداخت . به طور کلی این پروژه از چندین بخش اصلی تشکیل شده است :

  • بخش اول : که در آن سوال مورد نظر را برای کاربران خود طرح می کنید .
  • بخش دوم : که به کاربران شما این امکان را می دهد تا نظر خود را ثبت کنند .
  • بخش سوم : در نهایت نیز بخشی که در آن می توانید نتایج حاصل از نظرسنجی را ببینید .

پیش نمایش صفحه نظر سنجی :

عکس زیر خروجی صفحه نظر سنجی را نمایش می دهد :

صفحه نظر سنجی در PHP

پیش نمایش صفحه مشاهده نتایج :

عکس زیر خروجی صفحه مشاهده نتایج را نمایش می دهد :

صفحه مشاهده نتایج در PHP

پیش نمایش صفحه طراحی سوال و جواب های نظر سنجی :

عکس زیر خروجی صفحه طراحی سوال و جواب های نظر سنجی را نمایش می دهد.  در این صفحه ، از چندین کادر متن ( TextBox ) در قالب یک یک فرم HTML ، برای طراحی سوال ها ، استفاده می شود .

صفحه طراحی سوال و جواب های نظر سنجی در PHP

مرحله اول – تست فایل های دانلود شده برای پروژه :

برای تست فایل های پروژه ، پوشه survey را که درون فایل ضمیمه پروژه قرار دارد ، را یافته و درون پوشه www سرور PHP کامپیوترتان کپی نمایید . برای شروع ، فایل setQyestion.php که برای ایجاد سوال های نظر سنجی طراحی شده است را با تایپ یکی از آدرس های زیر در مرورگر باز نمایید ( پس از اجرای wampserver سرور PHP بر روی کامپیوتان ) :

localhost/survey/setQuestion.php
۱۲۷٫۰٫۰٫۱/survey/setQuestion.php

با زدن دکمه Enter ، مرورگر صفحه طراحی سوال های نظر سنجی را باز نموده ، که همانطور که در بخش پیش نمایش مشاهده نمودید ، حاوی یک فرم ساده HTML برای وارد کردن سوالات است .
اما قبل از تایپ سوال های مورد نظر و زدن هر گونه دکمه ای ، بایستی فایل پایگاه داده برای ذخیره سوال ها و جواب ها را نیز در محل مناسب آن قرار دهید ، وگرنه با پیام خطا مواجه خواهید شد .
برای این منظور پوشه حاوی فایل پایگاه داده به نام mysql/data را در آدرس زیر در سرور PHP ویندوزتان ، کپی نمایید :

C:\wamp\bin\mysql\mysql5.5.8\data

اگر پایگاه داده به صورت موفقیت آمیز کپی شود ، آدرس زیر را در مرورگر خود تایپ و اجرا نموده تا صفحه سرور phpMyAdmin به صورت زیر باز شود :

/http://localhost/phpMyAdmin>
مشاهده پایگاه داده MySQL در سرور phpMyAdmin

نکته : بایستی پایگاه داده surveytest را در بخش پایگاه داده های سرور ( databases ) مشاهده نمایید ، در اینصورت فایل های پایگاه داده بر روی ویندوز شما به صورت صحیح نصب نشده اند .

طراحی پایگاه داده لازم برای فرم نظر سنجی

در مرحله قبل، پنجره سرور پایگاه داده MySQL یا phpMyAdmin را باز کردید . در حالی که این پنجره باز است ، بر روی کادر کشویی “Please select a database” کلیک نمایید ، تا لیست پایگاه های داده نصب شده بر روی سیستم نصب شده اند ، باز شود . پایگاه داده surveytest بایتسی درون لیست موجود باشد .

لیست پایگاه های داده موجود در پروژه نظر سنجی در PHP

نکته ۱ : اگر شما نمی توانید پایگاه داده surveytest را در لیست فوق مشاهده نمایید ، احتمالا فایل های پایگاه داده را در مسیر صحیح قرار نداده اید .
نکته ۲ : پایگاه داده surveytest را از کادر کشویی Databases انتخاب نمایید، سپس دو جدول موجود در آن به صورت زیر نشان داده می شود:

لیست پایگاه های داده موجود در پروژه نظر سنجی در PHP

می توانید با کلیک بر روی نام های جداول ، ساختار آنها را مشاهده نمایید . همچنین با کلیک بر روی دکمه Browse ، همانند تصویر زیر ، اطلاعات موجود در هر کدام از جدول ها را مشاهده نمایید :

لیست پایگاه های داده موجود در پروژه نظر سنجی در PHP

معرفی جدول tblQuestions :

بر روی دکمه Browse در مقابل نام جدول کلیک نمایید . محتویات آن به صورت زیر نمایش داده می شود . همانطور که می بینید این جدول دارای ۵ فیلد اصلی به شرح زیر است :

  • QID
  • Question
  • qA
  • qB
  • qC
لیست فیلدهای موجود در پایگاه داده surveytest

جدول tblQuestions تاکنون دارای ۴ رکورد اطلاعاتی است که هر رکورد ، مشخصات یک سوال را نگهداری می کند .
فیلد QID ، شناسه هر سوال بوده و در این جدول کلید اصلی نیز است ( Primay Key ) ، یعنی نباید مقدار این فیلد در هیچ دو رکورد یکسان باشد . از این شناسه برای تشخیص سوال در سطح برنامه استفاده می شود .
فیلد QID به همین صورت نیز در جدول answers وجود داشته و این امکان را به ما می دهد تا دو جدول را به هم پیوند بزنیم . سپس اطلاعات ترکیبی مورد نظر خود را از هر دو جدول ، استخراج نماییم .
همچنین فیلد Question شامل شرح سوال و فیلدهای qA , qB , qC به ترتیب گزینه های هر سوال را شامل می شوند .

جدول answers :

در بخش بعدی با کلیک بر روی دکمه Browse مقابل جدول answers به بررسی آن خواهیم پرداخت . محتویات این جدول در ابتدای کار به صورت زیر است :

لیست فیلدهای موجود در پایگاه داده surveytest

جدول answers شامل ۵ فیلد است . فیلد ID در این جدول شناسه هر پاسخ بوده و کلید اصلی جدول می باشد . این فیلد ، یک فیلد با قابلیت افزایش خودکار ( auto increcement ) است که به ازای اضافه شدن هر رکورد ، خودکار یک واحد افزایش می یابد .
همچنین این جدول دارای فیلد QID است که در جدول tblQuestions نیز وجود داشت و شناسه هر سوال را نگهداری می کند . فیلد QID در جدول answers کلید خارجی بوده و برای اتصال به جدول tblQuestions مورد استفاده قرار می گیرد .
فیلدهای A , B و C نیز به ترتیب تعداد رای های هر گزینه سوال را نگهداری می کنند .

ارسال دیدگاه