جزوه مقدماتی پیش‌نیازهای درس PHP و MySQL

ویژه دانش‌آموزان پایه دوازدهم رشته کامپیوتر (هنرستان فنی و حرفه‌ای و کاردانش)


پیش از شروع...

قبل از این‌که وارد دنیای PHP و MySQL بشویم، لازم است چند مفهوم پایه‌ای را با هم مرور کنیم. این مفاهیم مثل «چهارچوب ذهنی» هستند که بدون آن‌ها، یادگیری PHP سخت و گنگ به نظر می‌رسد؛ اما با دانستن‌شان، همه چیز منطقی و قابل درک می‌شود.


۱. مرور سریع: وب چیست و چطور کار می‌کند؟

وقتی آدرس یک سایت را در مرورگر تایپ می‌کنید (مثلاً www.example.com) اتفاقات زیر می‌افتد:

  1. مرورگر شما (Client / کلاینت) یک درخواست می‌فرستد.
  2. این درخواست از طریق اینترنت به یک کامپیوتر دیگر به نام سرور (Server) می‌رسد.
  3. سرور، درخواست را بررسی می‌کند و پاسخ (معمولاً یک صفحه HTML) را برمی‌گرداند.
  4. مرورگر شما آن پاسخ را دریافت کرده و به شکل صفحه‌ی وب نمایش می‌دهد.

به این مدل ارتباطی، معماری کلاینت-سرور (Client-Server) گفته می‌شود.

[ مرورگر کاربر ]  --- درخواست (Request) --->  [ سرور ]
[ مرورگر کاربر ]  <-- پاسخ (Response) ------  [ سرور ]

💡 پروتکلی که این درخواست و پاسخ با آن رد و بدل می‌شود، HTTP نام دارد (مخفف Hyper Text Transfer Protocol).


۲. مرور مفاهیم سال‌های قبل

در پایه‌های قبل با این مباحث آشنا شدید؛ لازم است قبل از ادامه، آن‌ها را مرور کنید:

مبحث کاربرد
HTML ساختار صفحه وب (متن، عکس، جدول، فرم و ...)
CSS ظاهر و استایل صفحه (رنگ، فونت، چیدمان)
JavaScript تعامل و پویایی در سمت مرورگر (کلیک، انیمیشن، اعتبارسنجی فرم)

نکته مهم: HTML، CSS و JavaScript همگی در سمت کاربر (Client-Side) اجرا می‌شوند، یعنی مرورگرِ خودِ کاربر آن‌ها را پردازش می‌کند.


۳. وب‌سایت ایستا (Static) در برابر پویا (Dynamic)

وب‌سایت ایستا (Static)

  • محتوای صفحه ثابت است و برای همه‌ی کاربران یکسان نمایش داده می‌شود.
  • فقط با HTML و CSS ساخته می‌شود.
  • مثال: یک صفحه معرفی شخصی که هیچ‌وقت تغییر نمی‌کند.

وب‌سایت پویا (Dynamic)

  • محتوای صفحه بر اساس شرایط مختلف تغییر می‌کند (مثلاً نام کاربر، تاریخ، اطلاعات پایگاه داده).
  • نیاز به یک زبان برنامه‌نویسی سمت سرور دارد (مثل PHP).
  • مثال‌ها:
    • صفحه‌ای که بعد از ورود کاربر، می‌نویسد: «سلام علی، خوش آمدید»
    • فروشگاه اینترنتی که موجودی کالاها را نمایش می‌دهد
    • سیستم نمرات دانش‌آموزان

🎯 هدف اصلی این ترم، یادگیری ساخت وب‌سایت‌های پویا است.


۴. سمت کاربر (Client-Side) در برابر سمت سرور (Server-Side)

سمت کاربر (Client-Side) سمت سرور (Server-Side)
کجا اجرا می‌شود؟ داخل مرورگر کاربر روی کامپیوتر سرور
زبان‌ها HTML, CSS, JavaScript PHP, Python, Java, Node.js و ...
دسترسی به فایل‌ها و پایگاه داده خیر بله
امنیت کد کاربر می‌تواند کد را ببیند (View Source) کاربر کد را نمی‌بیند، فقط خروجی HTML را می‌بیند

💡 PHP یک زبان سمت سرور است. یعنی کدهای PHP هیچ‌وقت مستقیم به مرورگر کاربر فرستاده نمی‌شوند؛ سرور آن‌ها را اجرا کرده و فقط نتیجه (خروجی HTML) را برای کاربر می‌فرستد.


۵. سرور چیست؟

سرور یک کامپیوتر (یا نرم‌افزار روی یک کامپیوتر) است که وظیفه‌اش پاسخ‌گویی به درخواست‌هاست.

دو نوع سرور که با آن کار خواهیم کرد:

  1. سرور محلی (Local Server)

    • روی همان کامپیوتر خودمان اجرا می‌شود.
    • برای تمرین، آموزش و توسعه (Development) استفاده می‌شود.
    • نیازی به اینترنت ندارد.
    • نرم‌افزارهای معروف: XAMPP, WAMP, Laragon
  2. سرور آنلاین (Web Hosting)

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

در این ترم عمدتاً از سرور محلی (XAMPP) استفاده خواهیم کرد.


۶. PHP چیست؟

PHP (مخفف PHP: Hypertext Preprocessor) یک زبان برنامه‌نویسی سمت سرور است که مخصوص ساخت وب‌سایت‌های پویا طراحی شده.

ویژگی‌های مهم PHP:

  • رایگان و متن‌باز (Open Source)
  • می‌تواند داخل کد HTML نوشته شود.
  • به راحتی با پایگاه داده (به‌خصوص MySQL) ارتباط برقرار می‌کند.
  • بسیاری از سایت‌های معروف دنیا با آن ساخته شده‌اند (مثل ووردپرس، فیسبوک در ابتدا با PHP نوشته شده بود).

کد PHP در فایل‌هایی با پسوند .php نوشته می‌شود و بین تگ‌های زیر قرار می‌گیرد:

<?php
    echo "سلام دنیا!";
?>

۷. پایگاه داده (Database) چیست؟

فرض کنید می‌خواهید اطلاعات صدها دانش‌آموز (نام، نمره، شماره ملی و ...) را نگه‌داری کنید. نوشتن این اطلاعات در فایل متنی ساده، مدیریت، جست‌وجو و ویرایش آن‌ها را بسیار سخت می‌کند.

پایگاه داده ابزاری است برای ذخیره، سازمان‌دهی، جست‌وجو و مدیریت حجم زیادی از اطلاعات به شکلی سریع، منظم و امن.

پایگاه داده رابطه‌ای (Relational Database)

اطلاعات در قالب جدول (Table) ذخیره می‌شوند، شبیه به جدول‌های اکسل:

جدول دانش‌آموزان

id نام نام‌خانوادگی معدل
1 علی محمدی 18.5
2 سارا احمدی 19.2

مفاهیم پایه جدول:

  • جدول (Table): مجموعه‌ای از اطلاعات مشابه (مثل جدول دانش‌آموزان)
  • رکورد / سطر (Row / Record): یک ردیف کامل از اطلاعات (اطلاعات یک دانش‌آموز)
  • فیلد / ستون (Field / Column): یک ویژگی مشخص (مثل نام، معدل)
  • کلید اصلی (Primary Key): ستونی که هر رکورد را به‌صورت یکتا (Unique) مشخص می‌کند (معمولاً id)

۸. MySQL چیست؟

MySQL یک سیستم مدیریت پایگاه داده رابطه‌ای (RDBMS) رایگان و متن‌باز است که برای ذخیره و مدیریت داده‌ها استفاده می‌شود.

برای «صحبت کردن» با MySQL و انجام کارهایی مثل درج، حذف، ویرایش و جست‌وجوی اطلاعات، از زبانی به نام SQL (Structured Query Language) استفاده می‌کنیم.

نمونه‌ای از یک دستور ساده SQL:

SELECT * FROM students WHERE grade > 18;

(یعنی: تمام دانش‌آموزانی که معدل بالای ۱۸ دارند را نشان بده)

💡 در پروژه‌های PHP، معمولاً کد PHP اطلاعات را از کاربر می‌گیرد، سپس با دستورات SQL آن‌ها را در MySQL ذخیره یا از آن بازیابی می‌کند.


۹. چطور PHP، MySQL و مرورگر با هم کار می‌کنند؟ (تصویر کلی)

مرورگر کاربر
     |
     |  ۱. درخواست صفحه‌ای مثل login.php
     v
سرور (Apache) 
     |
     |  ۲. اجرای کد PHP داخل فایل
     v
کد PHP
     |
     |  ۳. در صورت نیاز، ارتباط با پایگاه داده
     v
پایگاه داده MySQL
     |
     |  ۴. برگرداندن نتیجه به PHP
     v
کد PHP نتیجه را در قالب HTML آماده می‌کند
     |
     |  ۵. ارسال HTML نهایی به مرورگر
     v
مرورگر کاربر (نمایش صفحه نهایی)

این مجموعه، یعنی Apache + MySQL + PHP که روی سیستم عامل نصب می‌شوند، به اختصار LAMP (روی لینوکس) یا WAMP (روی ویندوز) نامیده می‌شود. نرم‌افزار XAMPP همه‌ی این‌ها را یک‌جا و به‌راحتی نصب می‌کند (حرف X یعنی چندسکویی/Cross-platform).


۱۰. ابزارهایی که در این ترم نیاز داریم

ابزار کاربرد
XAMPP نصب همزمان Apache (سرور)، PHP و MySQL روی کامپیوتر شخصی
phpMyAdmin ابزار تصویری برای مدیریت پایگاه داده MySQL (داخل XAMPP موجود است)
Visual Studio Code (VS Code) ویرایشگر کد برای نوشتن فایل‌های PHP، HTML، CSS
مرورگر (Chrome/Firefox) برای مشاهده و تست خروجی وب‌سایت

مراحل کلی آماده‌سازی محیط (در جلسه بعد به‌طور عملی انجام می‌شود)

  1. دانلود و نصب XAMPP
  2. اجرای سرویس‌های Apache و MySQL از کنترل پنل XAMPP
  3. قرار دادن فایل‌های پروژه در پوشه‌ی htdocs
  4. باز کردن مرورگر و وارد کردن آدرس http://localhost/نام‌پوشه‌پروژه/
  5. مدیریت پایگاه داده از طریق آدرس http://localhost/phpmyadmin

۱۱. واژه‌نامه اصطلاحات کلیدی

اصطلاح توضیح
Client کاربر / مرورگر که درخواست می‌فرستد
Server کامپیوتری که به درخواست‌ها پاسخ می‌دهد
HTTP پروتکل ارتباطی بین مرورگر و سرور
Localhost نام مخصوصِ «همین کامپیوتر» در شبکه (سرور محلی)
Static Page صفحه‌ای با محتوای ثابت
Dynamic Page صفحه‌ای با محتوای متغیر و وابسته به داده
Database مخزن سازمان‌یافته برای ذخیره داده‌ها
Table جدول داده‌ها در پایگاه داده
Record / Row یک سطر اطلاعات در جدول
Field / Column یک ستون (ویژگی) در جدول
Primary Key شناسه یکتای هر رکورد
SQL زبان دستوری برای کار با پایگاه داده
PHP زبان برنامه‌نویسی سمت سرور
XAMPP بسته نرم‌افزاری شامل Apache + MySQL + PHP

۱۲. جمع‌بندی: چرا باید این‌ها را یاد بگیریم؟

با یادگیری PHP و MySQL، شما قادر خواهید بود:

✅ وب‌سایت‌هایی بسازید که با کاربر تعامل واقعی دارند (فرم ثبت‌نام، ورود کاربر، نظرسنجی و ...) ✅ اطلاعات را به‌صورت دائمی ذخیره و بازیابی کنید (نه فقط در حافظه موقت مرورگر) ✅ پروژه‌های واقعی مثل فروشگاه اینترنتی، سیستم مدیریت دانش‌آموزان، وبلاگ و ... طراحی کنید ✅ پایه‌ای قوی برای ادامه تحصیل یا اشتغال در حوزه برنامه‌نویسی وب داشته باشید


✍️ تمرین فکری قبل از جلسه بعد

  1. تفاوت سمت کاربر و سمت سرور را با مثال توضیح دهید.
  2. یک مثال از وب‌سایت ایستا و یک مثال از وب‌سایت پویا در زندگی روزمره خود نام ببرید.
  3. فکر کنید چرا نباید کدهای PHP مستقیماً برای مرورگر کاربر ارسال شوند؟ (نکته: به امنیت فکر کنید)

جلسه بعد: نصب و راه‌اندازی XAMPP و اجرای اولین فایل PHP