آموزش ساخت سیستم نظردهی با php

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

آموزش ساخت سیستم نظردهی با php

در این آموزش قصد داریم یک مثال از ساخت سیستم نظردهی با php و mysql یا همان فرم کامنت (Comment) را به صورت قدم به قدم پیاده سازی کنیم .

سیستم ارسال دیدگاه ما این ویژگی ها را خواهد داشت :

اول از همه , یک یک جدول در دیتابیس mysql برای ثبت نظرات کاربران ایجاد خواهیم کرد.

بعد از آن با قسمت ثبت دیدگاه از طریق فرم ارسال نظر کار می کنیم.

همچنین یک صفحه برای مدیریت دیدگاه هایی مثل منتشر شده , ویرایش و بروزرسانی , حذف کامنت , خواهیم داشت .

این قابلیت ها همه با استفاده از php و mysql پیاده سازی خواهد شد . پس با ما همراه باشید تا ۹ قدم آموزش ساخت سیستم نظردهی با php را پیش بریم .

 

۱ – ساخت جداول دیتابیس

یک دیتابیس با هر نامی ایجاد کنید , اما دیتابیس ما باید شامل جدولی به اسم comments با ستون های زیر باشد .

ID یک مقدار عددی  و autoincreement (افزایشی و خودکار)

Name مقدار داده ای varchar که برای ذخیره مقدار فیلد name در فرم کامنت استفاده می شود .

E-Mail مقدار داده ای varchar که برای ذخیره ایمیل استفاده می شود

Subject مقدار داده ای varchar برای ذخیره متن دیدگاه استفاده می شود

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

Status نیز varchar است که برای ذخیره وضعیت یک دیدگاه که آیا منتشر شده است یا منتظر تایید مدیریت می باشد , استفاده می شود.

۲ – اتصال به دیتابیس mysqli با php

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

در مرحله دوم , قصد داریم به دیتابیس مورد نظر برای ثبت دیدگاه کاربران , متصل شویم .

کد زیر را در فایل connect.php ذخیره کنید .

۳ – ساخت فرم HTML نظرسنجی کاربران

در این مرحله , یک فرم HTML برای طراحی بخش نظر گذاری سایت با استایل bootstarp ایجاد می کنیم . در هدر فایل اسیتل دهی بوت استرپ را از CDN فراخوانی می کنم .

بعد از افزودن فایل های bootstrap , فرم ارسال نظر را با این فیلد ها می سازیم . name , email , comment  . می توانید کد های زیر را مستقیما کپی و استفاده کنید . برای شکیل شدن فرم از کلاس های bootstrap استفاده کردم .

آموزش ساخت سیستم نظردهی با php

۴ – Insert داده های ارسال شده در دیتابیس

قبل از افزودن داده های ارسال شده از فرم , نیاز داریم که به دیتابیس mysql متصل شویم . در این قسمت از آموزش ساخت سیستم نظردهی با php , باید فایل اتصال به دیتابیس (connect.php) را در مراحل قبل ساختیم را با تابع include در php فراخوانی کنیم .  کد ها را در فایل commentform.php ذخیره می کنیم .

بعد از اتصال به دیتابیس , داده های ارسال شده (submitted) را در دیتابیس insert می کنیم . اول از هر چیزی , با تابع isset بررسی می کنیم که آیا آرایه سوپر گلوبال ست شده باشد و مقدار آن خالی نباشد . بعد با تابع mysqli_real_escape_string کاراکترهای خاصی که باعث خطا در کویری ما می شود را از ورودی پاکسازی می کنیم . این تابع را بر روی همه فیلد های name , email و comment اعمال می کنیم و بعد آنها را به یک متغییر نسبت می دهیم .

بعد از آن یک کویری sql برای افزودن مقادیر فرم در دیتابیس ایجاد می کنیم . همچنین این کویری را در خط بعد با تابع mysqli_query اجرا کردیم. اگر عملیات INSERT با موفقیت انجام شود یک پیام Successfully را مشاهده خواهید کرد در غیر اینصورت پیام خطا را نمایش می دهیم .

این پیام های خطا در کد قبل در یک متغییر ذخیره کردیم . برای نمایش آنها باید کد های زیر را به بالای کد های فرم ارسال نظر اضافه کنیم .

۵ – نمایش نظرات در بخش مدیریت (Back-end)

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

برای دیدن آموزش ساخت صفحه لاگین و ثبت نام با php کلیک کنید

اگر پروژه شما پنل ادمین دارد نیازی به این کار نیست فقط کافیه بخشی را برای مدیریت نظرات با کدهای HTML زیر اضافه کنید .

کد زیر را در یک فایل با اسم viewcomments.phpدر دایرکتری پنل ادمین اضافه کنید . فراموش نکنید برای شکیل شدن حتما فایل های bootstrap را فراخوانی کنید .

آموزش ساخت سیستم نظردهی با php

بعد از قرار دادن جدول بالا , حالا نیاز داریم تمام کامنت های ثبت را از دیتابیس با کویری SQL بخوانیم .

بعد از fetch کردن تمام سطر ها به صورت آرایه با تابع mysqli_fetch_assoc , از یک حلقه while برای نمایش همه کامنت ها به صورت یک به یک در هر کدام در یک سطر از جدول HTML استفاده می کنیم.

۶ – ویرایش و بروز رسانی نظرات

در آخرین مرحله , یک لینک برای ارسال id از طریق url برای فایل editcomment.php اضافه کردیم .

فایل editcomment.php :

آموزش ساخت سیستم نظردهی با php

بررسی می کنیم اگر آرایه سوپر گلوبال خالی باشد با دستور header کاربر را به صفحه دلخواه هدایت می کنیم . در غیر اینصورت id ست شده از طریق url را برای دریافت اطلاعات دیدگاه مورد نظر از دیتابیس در کویری sql به کار می بریم . همچنین برای جلوگیری از ورود کاراکترهای غیرمجاز در id آن را با تابع intval به یک مقدار عددی تبدیل کردیم .

هر یک از اطلاعات fetch شده از دیتابیس را در خصیصه value هر کدام از فیلد ها echo می کنیم .

همچنین وضعیت (status) نظر ثبت شده را به اینصورت با تگ select مشخص می کنیم .

بعد از اینکه مدیر مقادیر مورد نظر را تغییر داد آن ها را با استفاده از دستور update در sql بروز رسانی می کنیم . مانند مراحل قبل قبل از ثبت بررسی های لازم را انجام می دهیم و در آخر مرحله پیام های مورد نظر را نمایش می دهیم .

برای نمایش پیام ها در بالای فرم ویرایش , مقدار متغییر های ست شده را echo می کنیم .

۷ – تغییر وضعیت نظرات (Update Status)

در این مرحله از ساخت سیستم نظردهی با php , در قسمت عملیات (operation) صفحه viewcomments.php لینک های زیر را اضافه می کنیم . قبلا لینک ها را به صورت لینک # اضافه کردیم . کافیست آنها را با کدهای زیر جایگزین کنید . برای تغییر status در url مقدار id و وضعیت مورد نظر را به صفحه commentstatus.php ارسال می کنیم.

کد ها را به فایل commentstatus.php اضافه کنید . حتما فایل connect.php را نیز فراخوانی کنید .

بعد از آپدیت status کاربر مدیر را به فایل viewcomment.php ریدایرکت می کنیم .

۸ – حذف نظر

لینک delete را در فایل viewcomments.php با کد زیر جایگزین کنید . در این کد id مورد نظر را در url پاس می دهیم .

فایل ‌delcomment.php

در این فایل با استفاده از id کامنت مورد نظر را از دیتابیس حذف می کنیم و در نهایت کاربر را به صفحه veiwcomment.php هدایت می کنیم .

۹ – نمایش کامنت ها با عکس پروفایل

کد های زیر را در فایل displaycomments.php ذخیره کنید . در این فایل لیست تمامی نظرات ثبت شده را با تصویر گراواتار نمایش می دهیم .

اگر می خواهید در مورد نحوه دریافت تصویر از gravatar در php بیشتر بدانید کلیک کنید .

تا اینجا نحوه ساخت سیستم نظردهی با php و همچنین مدیریت کامل آن توسط مدیر را یاد گرفتیم . مطمینا بخش فرم ارسال نظر برای تعامل با کاربر و دریافت فیدبک های آنها و بررسی مشکلات و سوالات مربوطه با مطلب مورد نظر , بسیار مفید است .

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

همچنین می توانید آموزش ساخت سیستم نظردهی با php و ajax را نیز مشاهده کنید.

هر گونه مشکلی در پیاده سازی کدها داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .

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

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

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

  1. علیرضا ۲۸ اردیبهشت ۱۴۰۳

    سلام کدوم فایل ها تو صفحه سی ام اس ان و کدوم تو صفحه سابت

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

      سلام. باید اشنایی ابتدایی با html css php داشته باشید تا بتونید قدم به قدم اینو به سایت اضافه کنید

      پاسخ
  2. نازنین ۳۰ مرداد ۱۴۰۰

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

    پاسخ
    1. حسن شفیعی ۲۰ شهریور ۱۴۰۰

      سلام.
      ممنون.
      باید با مفهوم اعتبارسنجی آشنا شوید که در این آموزش کامل توضیح داده شده :
      https://netparadis.com/form-validation-php/

      پاسخ
  3. سجاد ۹ تیر ۱۴۰۰

    سلام من میخاستم ۴ قسمت ساده به سایت خریدم اضافه کنم یکی لایک و دیس لایکو کامنت و سیو آیا قابل راهنمایی هست.

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

      سلام. در مورد هر کدام در سایت یا گوگل جستجو کنید.
      اگر php متوسط رو یادبگیرید همه اینا رو بدون هیچ آموزش دیگری میتونید پیاده کنید

      پاسخ
  4. یکی ۷ اسفند ۱۳۹۹

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

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

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

      پاسخ
  5. سجاد ۱۱ بهمن ۱۳۹۹

    با سلام
    من کد رو دانلود کردم و روی localhost اجرا میگیرم
    ولی نمیدونم چرا
    ارور میده و میگه همچین دیتا بیسی رو نمیشناسم

    Warning: mysqli_connect(): (HY000/1049): Unknown database ‘comments’ in G:\xampp\htdocs\covid-19\comment\connect.php on line 2
    Error: Unable to connect to MySQL. Debugging errno: 1049 Debugging error: Unknown database ‘comments’

    پاسخ
    1. حسن شفیعی ۱۱ بهمن ۱۳۹۹

      سلام.
      اطلاعات دیتابیس رو داخل connect.php بصورت صحیح وارد کنید. همچنین توجه کنید با وارد شدن در phpmyadmin حتما چنین دیتابیسی بسازید و فایل .sql رو ایمپورت کنید

      پاسخ
  6. nima ۱۵ دی ۱۳۹۹

    سلام
    می شود چند تگ افکت برای html به من معرفی کنید .
    ممنون

    پاسخ
  7. SMB ۲۵ آذر ۱۳۹۹

    سلام خسته نباشید من تو قسمت حذف فایل مشکل دارم یعنی هر چی گزینه حذف رو میزنم پیغام خطا میده و پیام پاک نمیشه

    پاسخ
    1. حسن شفیعی ۲۵ آذر ۱۳۹۹

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

      پاسخ
  8. رسول ۱۵ آذر ۱۳۹۹

    باسلام و تشکر بابت پست کاملتون. یک سوال دارم. یک صفحه رو کدنویسی و استایل دهی کردم. وقتی در قسمت head سایت اسکریپت بوت استرپ رو برای لینک کردن اضافه میکنم، قالبم از بوت استرپ استایل میگیره و به هم میریزه. راهی هست که جلوشو گرفت؟ یک اسلایدشو از بوت استرپ باید بسازم در صفحه ولی خب بهم میریزه.

    پاسخ
    1. حسن شفیعی ۱۵ آذر ۱۳۹۹

      سلام.
      اگر فقط یک اسلایدشو میخواید نیاز نیست از بوت استرپ استفاده کنید و از کتابخانه مخصوص این کار بهره ببرید:
      https://owlcarousel2.github.io/OwlCarousel2

      پاسخ
      1. رسول ۱۵ آذر ۱۳۹۹

        سلام مجدد. بله درسته ولی لینکی که فرستادید چندتا عکس رو نمایش میده. موردی سراغ دارید که یک اسلاید رو بصورت اتوماتیک جابجا کنه؟ چیزی شبیه به قسمت “پیشنهاد لحظه ای” سایت های فروشگاهی. یک اسلاید رو نشون میده و هر چند ثانیه اون اسلاید رو بایک اسلاید دیگه(محصول دیگه) جابجا میکنه.. ممنونم ازتون

        پاسخ
      2. حسن شفیعی ۱۵ آذر ۱۳۹۹

        سلام. این پلاگین رو واسه آیتم هایی بحز تصویر هم میتونید استفاده کنید و قابلیت اسلاید خودکار یا همان autoplay هم داره و میتونید براش ثانیه تعریف کنید و این موارد کامل داخلش موجود هست که همزمان فقط یک محصول رو نمایش بدید و بعد از مثلا ۵ثانیه اسلاید یا محصول بعدی نمایش داده بشه.

        پاسخ
      3. رسول ۱۷ آذر ۱۳۹۹

        مهندس همه کاراشو کردم ولی تو صفحه ام عکساشو نمایش نمیده.لینک عکسهام درست وارد شده. تو یک صفحه خالی چک میکنم درست میشه و عکسها هم میان. ولی وقتی تو صفحه اصلیم چک میکنم، carousel بدون عکسها اجرا میشه. با صفحه م مشکل داره. direction رو هم ltr کردم باز درست نشد. راه حل رو ازکجا باید پیدا کنم؟

        پاسخ
      4. حسن شفیعی ۱۷ آذر ۱۳۹۹

        در صفحه مرورگر f12 بزنید بخش inspect element مروگر روی عکس ها کلیک راست inspect element بزنید و در اون بخش تگ img رو چک کنید که چه مقداری گرفتند

        پاسخ
    2. امیرحسین ۱۰ بهمن ۱۴۰۰

      سلام
      شما می توانید نام اون استایل هایی (نام کلاس هاتون) که با بوت استرپ جابه جا می شوند رو جا به جا کنید تا با بوت استرپ یکی نباشند

      مثلا اول همه ی استایل هاتون (نام کلاس هاتون) دو تا a بگذارید تا با استایل های بوت استرپ متفاوت بشوند

      پاسخ
  9. پوریا ۱۲ شهریور ۱۳۹۹

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

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

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

      پاسخ
      1. پوریا ۱۳ شهریور ۱۳۹۹

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

        پاسخ
      2. حسن شفیعی ۱۳ شهریور ۱۳۹۹

        سلام. خوشحالیم که مفید واقع شده.
        داخل صفحه پست حال post.php هست یا هر چیزی، شما اطلاعات پست رو از دیتابیس با یه کوئری sql میخونید دیگه درسته ؟ اونجا شما id پست رو هم میگیرید دیگه اونجام میتونید داخل یک متغییر بریزید و استفاده کنید.

        پاسخ
      3. پوریا ۱۳ شهریور ۱۳۹۹

        ممنونم از اینکه به پیام ها پاسخ میدید.
        متاسفانه من مبتدی هستم و مشکل من همونجاست دقیقا. نمیدونم چطور باید اون آیدی رو که توی صفحه دارم رو برای بخش کامنت استفاده کنم. یعنی در واقع تئوری کارو بلد هستم و عملا نمیدونم اون تیکه کد نوشتنش به چه صورت هست. به هر حال ممنون از شما.

        پاسخ
      4. حسن شفیعی ۱۳ شهریور ۱۳۹۹

        لطفا بخش کد php که اطلاعات پست رو میخونید رو قرار بدید خدمتتون راهنمایی میشه

        پاسخ
      5. پوریا ۱۳ شهریور ۱۳۹۹

        ممنون که راهنمایی میفرمایید.
        بفرمایید، کدهای صفحه مطلب
        ===============================

        ===============================

        پاسخ
      6. پوریا ۱۳ شهریور ۱۳۹۹

        جناب شفیعی فکر کردم و بلاخره تونستم انجامش بدم. فکر نمیکردم انقدر ساده باشه. اومدم و توی این خط کد “INSERT INTO comments (name, email, subject, status, post_id) VALUES (‘$name’, ‘$email’, ‘$subject’, ‘draft’, ‘$id’)”; متغیر id$ رو که قبلا از url گرفته بودم رو بهش دادم. و البته که انجام این کار با راهنمایی شما انجام شده و من بازهم ممنونم از راهنمایی شما و از اینکه وقت گذاشتید و بنده رو راهنمایی کردید.

        پاسخ
      7. حسن شفیعی ۱۴ شهریور ۱۳۹۹

        خیلی هم عالی.
        موفق و پیروز باشید.

        پاسخ
  10. سعید ۴ اردیبهشت ۱۳۹۹

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

    پاسخ
    1. حسن شفیعی ۴ اردیبهشت ۱۳۹۹

      سلام. چنین اسکریپت آماده ای که فقط این مورد رو داشته باشد در اینجا قرار داده نشده و باید برنامه نویسی بلد باشید تا بتونید با ترکیب این آموزش و آموزش ثبت نام و ورود کاربران در php چنین موردی را پیاده سازی کنید

      پاسخ
  11. سعید ۱ اردیبهشت ۱۳۹۹

    سلام
    من میخام ا اسکریپت شما در شبکه داخلی استفاده کنم
    خیلی خطا میده میشه راهنماییم کنید؟

    پاسخ
    1. حسن شفیعی ۱ اردیبهشت ۱۳۹۹

      سلام. باید دقیق بفرمایید چه خطایی دارد. احتمالا ورژن php را اگر به ۵٫۶ تغییر بدید حل بشه و همچنین بخش دیتابیس را باید به درستی راه اندازی کنید.

      پاسخ
  12. مرتضی ۲۶ دی ۱۳۹۸

    سلام
    من سایتم وردپرسه!
    چطور میشه در یک برگه دیدگاه را جابجا کرد؟
    در برگه ها از تب استفاده نمودم و دیدگاه ها را میخواهم قرار بدم درون تب نظرات!

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

      سلام.
      داخل کد نویسی کافی است بخش چاپ کردن نظرات با کد php را در بخش کد html که تب نظرات است کپی پیست کنید
      موفق باشید.

      پاسخ
      1. مرتضی ۲۶ دی ۱۳۹۸

        ممنون
        مشکلم پیدا کردن همین قطعه کد!
        سایتم وردپرسه شما نمی دونید قطعه کدی که دیدگاه چاپ میکنه چیه؟

        پاسخ
      2. حسن شفیعی ۲۶ دی ۱۳۹۸

        معمولا بصورت comment_form یا comments_template استفاده میشه و دنبال این تابع یا کدهای مربوط به این باشید.
        البته اگر php بصورت مبتدی بلد باشید میتونید به راحتی تابع را پیدا و جابجا کنید و یا با واگذاری به فرد دیگر کار را راحت و بدون دردسر انجام بدید.
        موفق باشید.

        پاسخ
      3. مرتضی ۲۶ دی ۱۳۹۸

        این کد را در HTML قراردادم ولی نمایش نداد!

        پاسخ
      4. مرتضی ۲۶ دی ۱۳۹۸

        شما انجام میدید؟
        من از کجا باید اقدام کنم؟

        پاسخ
      5. حسن شفیعی ۲۶ دی ۱۳۹۸

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

        پاسخ
  13. امین ۲۳ مهر ۱۳۹۸

    داداش خیلی گلی
    درست شد
    مرسی بابت راهنماییت

    پاسخ
  14. امین ۲۳ مهر ۱۳۹۸

    سلام خسته نباشید
    مرسی بابت راهنماییتون کارم راه افتاد فقط یه مشکلی دارم اونم اینه که وقتی من select میکنم که select * from submitidea where reply=id .
    مشکل اینجاست که مثلا ۱۰ تا id به طور مثال ۳۸ دارم که یکی رو فقط select میکنه بقیه نظراتو select نمیکنه
    بعد یه سوال دیگه منظورتون از بخش اخر query که نوشتید post-id=POSTID چیه ؟
    مرسی بابت راهنماییتون

    پاسخ
    1. حسن شفیعی ۲۳ مهر ۱۳۹۸

      سلام.
      باید fetchAll کنید تا همه سطر ها رو بخونید.
      این شرط postid برای این بود که مثلا اگر چندین مطلب یا خبر در سایت دارید باید نظرات هر خبر/مطلب رو هم با این شرط جداگانه بخونید که مثلا اگر کاربر برای مطلب۱ نظری ثبت کرد برای همان مطلب نمایش داده بشه.
      موفق باشید.

      پاسخ
    2. پوریا ۱۳ شهریور ۱۳۹۹

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

      پاسخ
  15. امین ۲۳ مهر ۱۳۹۸

    سلام
    خسته نباشید
    ببخشید من میخوام یک بخشی درست کنم داخل سیستم نظر دهی به این صورت:
    که یک شخص یک نظری رو ثبت میکنه یک شخص دیگه اگه خواست بیاد پاسخ اون شخص رو بده این پاسخ شخص فقط در همون بخش نمایش داده بشه
    اگه محبت بفرمایین یه توضیحی بدین
    مرسی

    پاسخ
    1. حسن شفیعی ۲۳ مهر ۱۳۹۸

      سلام. ممنون.
      ابتدا در جدول تظرات یک ستون دیگر به نام reply اضافه می کنید و بطور پیش فرض مقدارش رو ۰ قرار می دیدید و هر نظر جدیدی که ثبت شد مقدار reply = 0 را خواهد داشت.
      بعد در صفحه نظرات دکمه پاسخ رو برای نظر اضافه می کنید. زمانی که کاربر روی پاسخ به نظر رو کلیک کرد آیدی عددی نظر رو به صورتی مثلا داخل url با متد get دریافت و زمانی که کاربر نام و متن رو نوشت و سابمیت کرد شما آیدی عددی نظر رو که از متد get از url می گیرید , اطلاعات و پیام کاربر هم که از طریق فرم دریافت میشه و مشخص است و این موارد رو داخل دیتابیس و جدول نظرات insert می کنید و این آیدی نظر رو که کاربر بهش پاسخ داده به عنوان مقدار ستون reply در نظر می گیرید.
      پس الان ما در جدول دو نوع سطر نظر داریم بعضی از سطر ها که نظر اصلی مطلب سایت شما هستند و با reply = 0 مشخص می شوند و بعضی نظرات هم که reply غیر صفر دارند که مشخص کننده پاسخ به نظر هستند (اینکه کدوم نظر از طرق مقدار id که در ستون reply ذخیره شده مشخص می شود.)
      پس هنگام نمایش نظر شما ابتدا کویری sql میزنید با یک شرط اضافه تر reply = 0 که کل نظرات اصلی مطلب رو فراخوانی می کنه و داخل این حلقه شما یک کویری دیگه می زنید با Select * from comments where reply = COMMENT_ID and post_id = POSTID و زیر همین نظر, پاسخ های مربوطه رو که هر چندتا هستند از دیتابیس میگیرید و زیر نظر نمایش میدید.

      موفق باشید.

      پاسخ
      1. رسول ۱۷ آذر ۱۳۹۹

        سلام خسته نباشی مهندس. امکانش هست که یک مقاله آموزشی جداگانه هم در این مورد منتشر کنید؟ در رابطه با قسمت reply نظرات؛ ممنون میشیم از شما

        پاسخ
      2. حسن شفیعی ۱۷ آذر ۱۳۹۹

        سلام ممنون.
        اگر امکانش باشه بصورت ویدیویی منتشر میشه

        پاسخ
  16. امین ۱۴ مهر ۱۳۹۸

    اینکه میگم نمیشه این آی دی داخل یک جدول دیگه هست و برای اینکه ذخیره کنم از چه کدی باید استفاده کنم
    ممنون میشم توضیح بدین

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

      سلام. ممنون.
      خب شما باید در جدول نظرات یک ستون اضافه کنید و بعد در کویری خودتون تغییری هم ایجاد کنید که بتونید یک مقدار دیگه به جدول اینسرت کنید
      الان من از ساختار دیتابیس یا کدهای شما اطلاعی ندارم و نمی دونم صفحه یا پست یا بخش یا هر چیزی که هست رو بر چه اساس از دیتابیس فراخوانی می کنید. بر هر اساسی که هست (معمولا id) اون رو در جدول نظرات باید ذخیره کنید
      که این ذخیره منظور همان مقداری هست که به کویری insert شما اضافه میشه.
      اگر متوجه نشدید مطمینا نیاز است که آموزش های پروژه محور php رو بگذرونید یا پروژه های کوچک داخل وب رو بررسی کنید.

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