% تخفیف ویژه تخفیف های شگفت انگیز ثبت نام در دوره های برنامه نویسی وب و موبایل رو از دست ندید! (از عید فطر تا پایان خرداد)

آموزش کامل ساخت سیستم نظر سنجی با PHP و AJAX (قسمت اول)

- visibility ۴۵ mode_comment

سلام به همه دوستان سون لرنی،چند وقت پیش توی انجمن به دوستان قول داده بودیم که آموزش کامل سیستم نظر سنجی برای سایت رو قرار بدیم و خوب بالاخره الوعده وفا،توی این اسکریپت از PHPو MYSQL و JQuery و AJAX بهره میبریم تا یه اسکریپت کاملا حرفه ای رو آماده کنیم،پس با ما همراه باشید.

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

دموی اسکریپت نظر سنجی با PHP و AJAX (اختصاصی سون لرن)

خوب توی مرحله اول به سه تا جدول نیاز داریم؛چرا سه تا جدول ؟ خوب یه جدول سوالات نظر سنجی رو توی خودش نگهداری میکنه و جدول دومی پاسخ های سوالات رو توی خودش داره و جدول سومی هم برای ثبت IP کاربران هست که از رای دادن دوباره با یک IP جلوگیری کنیم که کمک میکنه نظرسنجی بهتر و قابل اعتماد تری داشته باشیم.

کد SQL برای جدول اول که ما اینجا اسمشو میذاریم question :

توی این جدول دو تا فیلد داریم یکی فیلد ID که لازمه هر جدوله و یکی هم فیلد title که عنوان نظر سنجی توش قرار میگیره.

کد SQL برای جدول جواب ها و ثبت رای کاربران که اسمشو گذاشتیم answers :

توی این جدول هم فیلد های ID و title برای برای عنوان جواب و فیلد number برای تعداد پاسخ های این جواب و فیلد q_id برا نگهداری شناسه سوال که درو اقع مشخص میکنه این جواب مربوط به این سوال هست،ما توی این جدول علاوه بر اینکه فیلد ID رو به عنوان کلید اصلی قرار دادیم،فیلد q_id رو هم به عنوان Index گذاشتیم تا توی کوئری هایی که با q_id سروکار داره سریعتر عمل کنه.

کد SQL برای جدول ثبت IP کاربران اسمشو گذاشتیم polls :

خوب تو این جدول همه فیلد ID و فیلد q_id برای نگهدرای شناسه سوال (دوستان عزیز توجه داشته باشند شناسه سوال در اینجا به عنوان شناسه نظر سنجی هم برای عمل میکنه)،فیلد ip برای نگهداری IP کاربری که رای داده و date هم برای نگهدرای تاریخ و ساعت رای کاربر(تیو phpMyAdmin اگه نوع فیلد رو TIMESTAMP قرار بدید خودش به صورت اتوماتیک تاریخ و ساعت لحظه پردازش رو وارد میکنه).

خوب اینم از ساختار و فیلد های جدول ها ما؛

قسمت HTML

توب فایل index.php قسمت فرم و ظاهر نظر سنجی رو طراحی میکنیم.

ما مثل همیشه از کلاسی که توی پروژه های قبلی ازش استفاده میکردیم هم همین جا استفاده میکنیم و تیو خط اول اونو فراخوانی کردیم (تنظیمات دیتابیس حتما توی فایل config.php انجام بشه).

قسمت HTML که توضیح خاصی نداره فقط اون کد های جاوااسکریپت رو که اضافه کردیم بعدا میگیم باهاشون چکار داریم.توی قسمت PHP که نوشتیم با دستور global $db متغییر db رو از فایل database که اون بالا اضافه اش کردیم رو فراخوانی کردیم (چون از قبل برای راحتی کار همون جا تعریف شده)،خوب باس ایتفاده از متد ها کلاسی که داریم به بانک وصل شدیم و اولین سوال نظرسنجی رو فراخونی کردیم و نشون دادیم و بعدشم با استفاده ار ID سوال اول تمامی گزینه هایی که مرتبط به این سوال هستن رو فراخوانی کردیم و داخل یه تگ div با کلاس options نشون دادیم،یه نکته اینکه قبل حلقه که جواب ها رو برای ما نشون میده من یه تگ input و از نوع hidden اضافه کردم که برای ما مقدار ID ُوال رو نگهداری میکنه (حالا این ID توی ارسال به صفحه پردازش و ثبت اطلاعات خیلی کاربرد داره)،آخرشم که با متد disconnect از دیتابیس قطع ارتباط کردیم.

خوب برای قسمت استایل هم کمی CSS نوشتیم:

خوب تا این  جای کار باید یه چیزی شبیه تصویر پایین داشته باشید.

p27-polls-result-1

توی قسمت بعد کد های JQuery و Ajax رو تکمیل میکنیم.موفق و پیروز باشید.

دانلود فایل های PHP

comment دیدگاه کاربران
کوثر

باسلام و خسته نباشید و تشکرازسایت خوبتون
میشه بفرمایید اسم دیتابیسو چی بزارم تا اتصال برقرار بشه؟ آخه من 2دیتابیس درست کردم یکی بنام dbکه 3جدولودرونش گذاشتم یکیم بنامdatabase که اتصال برقرار نشد!
ممنون میشم اگه جواب بدیدآخه فوری لازم دارم

لقمان آوند

سعی کنید اسامی دیتابیستون رو از کلمات رزرو شده قرار ندید . اسم منطقی تری رو انتخاب کنید . مثل pollDB

کوثر

باسلام وممنون ازپاسختون؛ من اسم دیتابیسوباید در صفحهdatabase.php بزارم؟در قطعه کدزیر؟
$db_select=mysql_select_db(DB_NAME,$this->connection);
آخه درهمین صفحه اسامی3دیتابیس دیگه اومده مگه از چنددیتابیس میشه استفاده کرد؟لطف میکنین بیشتر راهنمایی بفرمایین؟

کیوان علی محمدی

سلام شما فقط کافیه اطلاعات دیتابیس رو در فایل config ست کنید.

محمد

مختصر و مفید

ارسال نظرات

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

1 2 3