ساخت سیستم نظرسنجی توسط PHP و Mysql

  • آپدیت شده در تاریخ

سیستم نظرسنجی توسط PHP

بروزرسانی در تاریخ ۲۱-۰۱-۱۳۹۷ : افزودن سورس کد آموزش

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

در این آموزش بررسی می کنیم که چگونه یک سیستم نظرسنجی توسط PHP و Mysql را بدون استفاده از جی کویری یا جاواسکریپت پیاده سازی کنیم . همچنین ، سیستم نظرسنجی که طراحی می کنیم رای های کاربران را ذخیره می کند . سوال و جواب ها و رای های کاربران در دیتابیس Mysql ذخیره می شوند.

قابلیت های اسکریپت نظرسنجی

رای ها و تنظیمات مربوطه در دیتابیس Mysql ذخیره می شوند . سوالات از طریق دیتابیس خوانده و به کاربر نمایش داده می شوند. یکبار که رای ثبت شد ، پاسخ مربوطه در دیتابیس ذخیره می شود . همچنین ، ما از کوکی های PHP برای جلوگیری از رای های چندین باره توسط کاربر استفاده می کنیم . نتایج نظرسنجی با تعداد کل رای ها و سوالات نمایش داده می شود . نتایج نظرسنجی را به صورت درصد در کنار هر جواب نمایش می دهیم

ساخت جدول

برای ساخت سیستم نظرسنجی در php از سه جدول polls,poll_option و  poll_votes استفاده می کنیم.

جدول polls سوالات ذخیره می کند.

جدول poll_options دارای جواب ها و آی دی است .

جدول poll_votes  نیز برای ذخیره سازی تعداد رای ها و جواب ها و آی دی استفاده می شود.

برای مثال ما چند مقدار پیش فرض را به جدول اضافه می کنیم

کلاس Poll

کلاس Poll در سیستم نظرسنجی توسط  PHP برای مدیریت تمام درخواست های سیستم رای گیری استفاده می شود.

  • __construct() – انتخاب و اتصال به دیتابیس
  • getQuery() – اجرای دستور SQL و return کردن داده ها . یک تابع private است که فقط در این کلاس قابل استفاده است.
  • getPolls() –  کشیدن اطلاعات رای گیری و رای ها
  • vote() – برای insert یا update تعداد رای ها در دیتابیس
  • getResult() – نمایش نتیجه رای گیری همراه با جواب ها و تعداد رای ها

برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود

نمایش فرم نظرسنجی (index.php)

ساخت سیستم نظرسنجی توسط PHP و Mysql

برای انتخاب از یک radio button  در کنار هر جواب قرار داده شده است . در پایین یک دکمه submit برای فرستادن رای و یک لینک برای نمایش نتیجه نظرسنجی قرار گرفته است.

بار اول که جواب مورد نظر کاربر ارسال شد ، رای توسط کلاس Poll در دیتابیس ذخیره میشود . همچنین ، کوکی مورد نظر برای شناسایی کاربر ذخیره و وضعیت به کاربر نمایش داده می شود.

نتیجه نظرسنجی (results.php)

ساخت سیستم نظرسنجی توسط PHP و Mysql

در این فایل ، نتایج نظرسنجی از دیتابیس خوانده و با جزییات به کاربر نمایش داده میشود . همچنین تعداد رای ها برای هر جواب به صورت درصد در یک نوار درصد کنار هر جواب نمایان می شود.

کد CSS

در فایل index.php ، css زیر برای استایل دهی به سوال و جواب ها استفاده شده است .

و استایل های فایل results.php به اینصورت است :

جمع بندی

در آموزش ” ساخت سیستم نظرسنجی توسط PHP و Mysql” سعی کردیم به شما مراحل ساخت یک سیستم نظرسنجی آنلاین و ساده را همراه با کد ها به شما نشان بدیم. .

در کل این آموزش به شما نحوه ساخت همچین فرم های نظرسنجی به طور کامل نشان میدهد . برای امنیت بیشتر فرم و جلوگیری از تقلب کاربران می توانید در کنار استفاده از کوکی ها ، از IP استفاده کنید .

امیدوارم این کد را توسعه بدید و در پروژه هایی که می نویسید ازش بهره ببرید .

برای دانلود سورس کد کامل این پروژه از باکس دانلود استفاده کنید.

موفق باشید

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱۱)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. فرامرز محمدی ۱۴ بهمن ۱۴۰۱

    سلام وقتتون بخیر اسم جدول رو چی بزاریم . من هر اسمی در دیتابیس میزارم و با private $dbName ست میکنم به این ارور

    Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\iran\poll\include\database.php:3 Stack trace: #0 C:\xampp\htdocs\iran\index.php(15): include() #1 {main} thrown in C:\xampp\htdocs\iran\poll\include\database.php on line3
    برخورد میکنم
    ممنون میشم راهنماییم کنید
    با تشکر

    پاسخ
    1. حسن شفیعی ۱۵ بهمن ۱۴۰۱

      سلام ممنون
      خطا مربوط به نام دیتابیس نیست و تابع mysql_connect هست که این تابع در ورژن های ۷ php حذف شده لطفا آموزش زیر را ببینید و mysql رو به mysqli تبدیل کنید تا مشکل رفع بشه
      استفاده از MySQLi به جای MySQL در PHP

      پاسخ
  2. علیرضا ۱۲ تیر ۱۴۰۰

    سلام خسته نباشید ؛ ببخشید کد ها ارور دارن میشه توضیح بدید

    Fatal error: Uncaught Error: [] operator not supported for strings in D:\xampp\htdocs\project\پروژه\nazar_sangy\Poll.php:49 Stack trace: #0 D:\xampp\htdocs\project\پروژه\nazar_sangy\Poll.php(70): Poll->getQuery(‘SELECT * FROM p…’) #1 D:\xampp\htdocs\project\پروژه\nazar_sangy\index.php(7): Poll->getPolls() #2 {main} thrown in D:\xampp\htdocs\project\پروژه\nazar_sangy\Poll.php on line 49
    ارور از اینی اولی
    while($row = $result->fetch_assoc()){
    $data[] = $row;
    ارور از اینی اولی ( $data[] = $row;) اینو حذف میکنم از کد ؛ ارور بعدی اینو به ما میگه

    ارور بعدی اینه
    Warning: foreach() argument must be of type array|object, bool given in D:\xampp\htdocs\project\پروژه\nazar_sangy\index.php on line 37

    میشه محبت کنید اصلاحش کنید بدید ممنون میشم,

    پاسخ
    1. حسن شفیعی ۱۵ تیر ۱۴۰۰

      سلام ممنون.
      کدها هیچ مشکلی ندارندو محیط اجراتون مشکل داره.
      این خطا مروبوط به اینه که ورژن php شما پایینه. xampp با ورژن ۵٫۶ یا ۷ به بالا نصب کنید

      پاسخ
  3. Mohammad Rahimy ۵ اسفند ۱۳۹۸

    سلام
    خیلی آموزش خوبی بود و منم تو سایتم ازش استفاده کردم

    ولی یه مشکل داره اونم اینه که تو هر صفحه جداگانه فقط یه نظر سنجی میشه گذاشت اگه دوتا نظرسنجی بسازی بازم فقط اولی اجرا میشه و دومی کلا انگار وجود نداره و با حلقه ها هم نمیشه بیشتر از یک بار نظر سنجی رو اجرا کرد

    اگه ممکنه یکم راهنمایی کنید لطفا

    ممنون

    پاسخ
    1. حسن شفیعی ۵ اسفند ۱۳۹۸

      سلام. خوشحالیم که مفید واقع شده.
      در صفحه index.php مقدار $pollData را var_dump کنید تا ببینید چندتا نظرسنجی از دیتابیس خوانده شده.
      همچنین دقت کنید که نظرسنجی های که status=1 را دارند برگشت داده می شوند که در کلاس Poll این مورد را در متدgetPolls و getQuery می توانید ببینید و ویرایش کنید
      موفق باشید.

      پاسخ
  4. faeze ۲۹ اسفند ۱۳۹۷

    سلام ببخشید دنلود باکس کجاست؟

    پاسخ
    1. حسن شفیعی ۲۹ اسفند ۱۳۹۷

      سلام. زیر همین پست و بالای بخش نظرات

      پاسخ
  5. شاه ۲۱ فروردین ۱۳۹۷

    داداش دمت گرم!آموزش عالی بود!ولی بهتر نبود سورس این آموزشم میزاشتی!کمی سردرگم شدم!

    پاسخ
    1. حسن شفیعی ۲۱ فروردین ۱۳۹۷

      سلام . خوشحالم که مفید واقع شده . سورس کد این آموزش هم قرار داده شد که از بخش دانلود باکس می تونید دریافت کنید.

      موفق و پیروز باشید.

      پاسخ
      1. شاه ۲۱ فروردین ۱۳۹۷

        خیلی مچکرم از پیگیریتون!خسته نباشید،خداقوت!❤️💛

        پاسخ
دوره های آموزشی