php چیست؟فراگیری برنامه نویسی php به چه صورت است؟کتاب آموزش برنامه نویسی php چیست؟چطور برنامه نویسی php را یادبگیریم؟چارچوب کاربردی برنامه نویسی php چیست؟آموزش فارسی برنامه نویسی php به چه صورت است؟کتاب آموزش پیشرفته برنامه نویسی php چگونه دانلود کنیم؟نحوه دانلود آموزش برنامه نویسی php چیست؟مفاهیم آموزش پیشرفته برنامه نویسی php چیست؟چطور در کوتاهترین مدت برنامه نویسی php یادبگیریم؟در ادامه پاسخی جامع به این سوالات خواهیم داد،همراه مجله اینترنتی ماهتوتا باشید.
دانلود کتاب php آموزش کامل و پیشرفته برنامه نویسی php
30,000 تومان
PHP چیست؟
PHP که مخفف عبارت “Hypertext Preprocessor” میباشد، یک زبان برنامه نویسی منبع باز (open-source) و شیءگرا محسوب می شود. اما می توان از آن به عنوان یک زبان عمومی استفاده کرد. همچنین این زبان به توسعه دهندگان وب این اجازه را می دهد، تا محتوای صفحات خود را بر روی پایگاه داده پیاده سازی کنند.
چرا PHP ؟

یکی از ویژگی های خوب PHP سطح دسترسی به انواع پایگاه داده ها از جمله MySQL , SQLite , Oracle , SqlLite و … می باشد.
۱) اجرا بر روی Platform های مختلف
۲) برنامه نویسی شبکه با آن ساده و لذت بخش است.
۳) در برنامه نویسی وب سریع و پرقدرت و امن است.
۴) سرعت بالای آن در مقایسه با برنامه ی asp.net
۵) قابلیت اجرایی بر روی انواع پلت فرم ها نظیر; Unix , Linux , Windows و …
۶) زبان PHP از لحاظ شی گرایی یک زبان کامل است.
۷) توجه داشته باشید PHP در استفاده بهینه از منابع و حافظه نمونه است.
۸) پی اچ پی رایگان و Open Source می باشد.
بازار کار PHP چگونه است؟
در حال حاضر بازار کار وب در ایران در دست PHP و asp.net قرار دارد و سایت ها در ایران با این دو زبان نوشته می شوند. پس شدیدا به این زبان امیدوار باشید. و سریعا شروع به یادگیری این زبان کنید. و بدانید که سریع تر از زبان های دیگر به بازار کار راه پیدا خواهید کرد.
برای مثال در بازار کار با php شما میتوانید یک پلاگین برای وردپرس بنویسید.
همچنین شما میتوانید بعد از فراگیری php به صورت یک فریلنسر مشغول به کارشوید ، فریلنسر به معنای فردی است که از طریق ارتباط با اینترنت با شرکت یا شخص در ارتباط است و به صورت همزمان یک یا چند پروژه را انجام میدهد ، در راستای اطلاعات بیشتر در رابطه با فریلنسر توصیه میشود مقاله فریلنسر کیست را مطالعه کنید.
در راستای مسیر آموزشی شما ، پیشنهاد میشود قبل از ورود به دنیای برنامه نویسی و آموزش برنامه نویسی php ، مسیر راه طراحی سایت را از لینک آموزش طراحی سایت رایگان دنبال کنید ، در این مقاله به صورت کلی تر مباحث مطرح شده است که به شما کمک میکند مسیر کاملی برای آموزش های طراحی سایت خود در نظر بگیرید و پیش نیاز های کامل و حرفه ای قبل از گذراندن دوره ی آموزشی php را در اختیار شما قرار میدهد.
در مورد دوره
در این دوره از آموزش PHP قصد داریم تا با زبانی شیوا و روان تمامی مباحث موجود را بررسی کنیم. این اطمینان به شما داده می شود که نیاز به منبع دیگری نداشته باشید، چرا که در این دوره از آموزش PHP مباحث به صورت سلسله وار بیان می شود. پس برای آموزش کامل و جامع از ابتدا شروع کنید. همچنین سعی بر این داریم تا
تمرین هایی پایان جلسات بر حسب نیاز قرار دهیم.
توجه داشته باشید که آموزش PHP به صورت ویدئو نیز در حال آماده سازی می باشد. این آموزش ها در دو بخش مقدماتی و پیشرفته خواهد بود.
*پی اچ پی مقدماتی*
جلسه معرفی
- مقدمه و معرفی پی اچ پی
- تاریخچه ی PHP
جلسه اول PHP
- انتخاب یک IDE مناسب
- نحوه ی اجرای کد های PHP
- توضیحاتی مرتبط با Xampp و ذخیره ی فایل های PHP
جلسه دوم PHP
- اشنایی با انواع متغیر ها
- تفاوت تک کوتیشن و دابل کوتیشن در Php
- ادغام کدهای HTML با PHP
- تفاوت print و echo
جلسه سوم PHP
- عملگرها در PHP
- معرفی کامل سه روش کامنت گذاری
جلسه چهارم PHP
- تعریف و نحوه کار با آرایه ها
- تابع count( )
- تابع print_r و var_dump
- عملگر های آرایه ای
جلسه پنجم PHP
- عبارت های شرطی if….else….elseif
- دستور switch در آموزش PHP
جلسه ششم PHP
- حلقه ی for در PHP
- حلقه ی while در PHP
- حلقه ی foreach در PHP
- حلقه ی do-while در PHP
جلسه هفتم PHP
- اولین جلسه حل تمرین PHP
جلسه ی هشتم PHP
- توابع (Functions) در PHP
- آرگومان در تابع پی اچ پی
- مقدار پیش فرض آرگومان پی اچ پی
- عبارت return در توابع PHP
جلسه نهم PHP
- آرایه ها در PHP
- مرتب کردن آرایه ها در PHP
- متغیر superglobal در PHP
جلسه دهم PHP
- کار با فرم در PHP
- تفاوت دو متد GET و POST
- اعتبارسنجی فرم در PHP
*پی اچ پی پیشرفته*
جلسه یازدهم PHP
- تشریح مبحث شی گرایی
- توضیح اصطلاحات مهمِ مربوط به برنامه نویسی شی گرایی
- تعریف کلاس های PHP شی گرایی
- ساخت اشیا در PHP شی گرایی
- فراخوانی تابع عضو
جلسه دوازدهم PHP
- توابع سازنده و مخرب در مبحث شی گرایی
- مفهوم ارث بری (Inheritance)
- Function Overriding
- تفاوت بین public، private و protected در کلاس ها
جلسه سیزدهم PHP
- مفهوم Constants (ثابت ها) در شی گرایی
- فيلد ها و متد هاي ايستا (static) در شی گرایی
- توضیح ::parent و :: Self
- کلاس های abstract و interface در شی گرایی
- مفهوم رابط ها (Interfaces)
- پایان مبحث شی گرایی
جلسه چهاردهم PHP
- MySQL چیست؟
- اتصال PHP و پایگاه داده MySQL
- کار با پایگاه داده mysql از طریق محیط آن
- (CRUD) در محیط PhpMyAdmin
جلسه پانزدهم PHP
- اتصال PHP به MySQL
- از کدام روش برای اتصال به پایگاه داده MySQL استفاده کنیم؟ (PDO یا MySQL)
- بستن اتصال به پایگاه داده
جلسه شانزدهم PHP
- نحوه ی ایجاد یک پایگاه داده MySQL با دو روش PDO و mysqli
- نحوه ایجاد جدول MySQL با استفاده از MySQLi و PDO
جلسه هفدهم PHP
- آموزش وارد کردن اطلاعات به صورت تکی در پایگاه داده MySQL
- نحوه وارد کردن اطلاعات به صورت چند تایی در پایگاه داده MySQL
جلسه هجدهم PHP
- دستورات آماده PHP در MySQL
- آموزش دریافت آخرین شناسه در پایگاه داده MySQL با زبان PHP
جلسه نوزدهم PHP
- آموزش استخراج داده ها از پایگاه داده MySQL
- حذف اطلاعات از دیتابیس MySQL
جلسه بیستم PHP
- به روزرسانی اطلاعات در جدول MySQL با استفاده از mysqli و PDO (دستور UPDATE)
- محدود کردن رکورد های انتخاب شده از دیتابیس MySQL
جلسه بیست یکم PHP
- XML چیست ؟
- DOM در XML
- چرا باید از XML استفاده کنیم ؟
- مثال هایی از XML
- نحوه خواندن یک فایل XML با استفاده از PHP
- چگونگی ساخت یک فایل XML با استفاده از PHP
جلسه بیست دوم PHP
- AJAX چیست ؟
- نحوه کار کردن با AJAX ( آژاکس )
- مثال AJAX در PHP
جلسه بیست سوم PHP
- ساخت جستجوی زنده ( Live ) پایگاه داده با استفاده از AJAX
جلسه بیست چهارم PHP
- دومین جلسه حل تمرین PHP
جلسه بیست پنجم PHP
- سومین جلسه حل تمرین PHP
مقدمه:
PHP که مخفف عبارت “Hypertext Preprocessor” میباشد، یک زبان برنامه نویسی منبع باز (open-source) و شیءگرا محسوب می شود. اما می توان از آن به عنوان یک زبان عمومی استفاده کرد. همچنین این زبان به توسعه دهندگان وب این اجازه را می دهد، تا محتوای صفحات خود را بر روی پایگاه داده پیاده سازی کنند.
می توان گفت که PHP اساسا برای توسعه نرم افزار های مبتنی بر وب استفاده می شود. این آموزش به شما کمک خواهد کرد تا منبع و اساس خود را با PHP بسازید.

پیشنیاز شما برای ورود
قبل از این که ادامه ی آموزش را دنبال کنید، در نظر داشته باشید که شما باید درک اولیه ایی از زبان های HTML ، CSS و JavaScript نیز داشته باشید.
معرفی
PHP به عنوان یک پروژه ی منبع باز کوچک آغاز شد و مردم کم کم به پر اهمیت بودن این زبان پی بردند. راسموس لردورف (Rasmus Lerdorf) اولین نسخه پی اچ پی را در سال ۱۹۹۴ راه اندازی کرد.
PHP یک زبان برنامه نویسی سمت سرور می باشد. که دستور های آن می توانند در Html قرار بگیرند. سمت سرور بودن به این معنی می باشد که دستورات وارد شده در پی اچ پی ابتدا توسط سرور Apache یا IIS پردازش می شوند و سپس خروجی آن به صورت صفحات Html و JavaScript برای کامپیوتر کاربر ارسال می شود. یا به بیانی دیگر وظیفه اجرای صفحات پی اچ پی به عهده سرور وب هاست سایت می باشد و بر روی سرویس دهنده (Server) انجام می گیرد.
یکی از ویژگی های خوب PHP سطح دسترسی به انواع پایگاه داده ها از جمله MySQL , SQLite , اوراکل و … می باشد.
وردپرس (WordPress) ، هسته بزرگترین سیستم وبلاگ نویسی دنیا و همچنین بزرگترین شبکه ی اجتماعی یا همان فیس بوک (Facebook) با زبان برنامه نویسی PHP نوشته شده اند. توجه داشته باشید که سیستم های مدیریت محتوای معروف دیگری نظیر جوملا، دروپال و مجنتو همگی با زبان برنامه نویسی پی اچ پی طراحی شده اند.
ساختار
برنامه ی Hello World زیر به زبان پی اچ پی و درون کد های HTML نوشته شده است.
1
2
3
4
5
6
7
8
9
10
|
<!DOCTYPE html>
<html>
<head>
<meta charset=“utf-8”>
<title> tutorial php in Mahtuta </title>
</head>
<body>
<?php echo ‘Hello World’;?>
</body>
</html>
|
برنامه ی زیر هم بدون نیاز به کد های Html نوشته شده است. و کوتاه ترین برنامه ی Hello World در PHP می باشد.
1
|
<?php echo ‘Hello World’;?>
|
اگر خروجی HTML مثال فوق را بررسی کنید، متوجه خواهید شد که کد پی اچ پی در فایل فرستاده شده از سرور به مرورگر وب شما وجود ندارد. تمام دستورات PHP پردازش می شود و فقط این خروجی اصلی و خالص HTML است که به نمایش در می آید.
سخن پایانی مقدمه آموزش برنامه نویسی PHP
باید توجه داشته باشید که <?php…?> یک تگ رایج در این زبان می باشد که به وفور آن را ملاحظه خواهید کرد. در بخش های آینده به نصب و آموزش دستورات این زبان می پردازیم . همچنین در نظر داشته باشید اطلاعات و مستنداتی با زبان اصلی بر روی سایت هایی همچون w3schools ، tutorialspoint قرار دارد .
با ما همراه باشید!
در قسمت قبل مقدمه ای از Php را بیان کردیم و به طور مختصر به معرفی آن پرداختیم. در جلسه اول پی اچ پی سعی بر این داریم تا ابزار های مورد نیاز را بررسی کرده و یک از آن ها را انتخاب کنیم. در پایان برنامه ی “Hello world” را نیز خواهیم نوشت.
این نوید به شما داده می شود که ۰ تا ۱۰۰ Php توسط مجله اینترنتی ماهتوتا به شما دانشجویان عزیز آموزش داده شود. با ما همراه باشید.
نحوه ی اجرای کد های php

همانطور که بیان کردیم Php یک زبان سمت سرور می باشد و همچنین خروجی آن در صفحات مرورگر شما قابل نمایش هستند. یعنی دستورات وارد شده در پی اچ پی ابتدا توسط سرور Apache یا IIS پردازش می شوند و سپس خروجی آن به صورت صفحات Html و JavaScript برای کامپیوتر کاربر ارسال می شود.
در جلسه اول Php متوجه خواهید شد که چه چیزی برای ایجاد پروژه نیاز دارید.
شما برای برنامه نویسی و استفاده از پی اچ پی به سه چیز اساسی نیاز دارید.
– برنامه ایی برای کد نویسی در آن : در وهله ی اول و در ساده ترین حالت می توانید از Notepad استفاده کنید اما ابزار پیشرفته تری همچون Visual Studio ، Netbeans ، Dreamweaver ، Phpstorm و … وجود دارند که ما در این آموزش از Phpstorm استفاده خواهیم کرد.
– یک مرورگر : نمایش کد های شما در مرورگر سیستم شما اتفاق می افتد.
– سرور اجرا کننده : شما می توانید یکی از برنامه های Wampserver و یا Xamppserver که نقش وب سرور را ایفا می کنند، دانلود کرده و از آن برای اجرا کردن کد های خود استفاده نمایید. ما جلسه اول Php از Xamppserver استفاده میکنیم. برای دانلود این برنامه کلیک کنید.
توضیحاتی مرتبط به Xampp و ذخیره ی فایل های PHP

پس از این که فایل Xampp را دانلود و نصب کردید، ماژول های Apache و MySQL که پر کاربردترین ماژول این نرم افزار هستند و بیشتر به آن ها نیاز داریم را Start می کنیم تا فعال شوند. با انجام این کار رایانه خود را به یک سرور محلی تبدیل کردید که میتواند اسکریپتهای نوشته شده به زبان php را براحتی اجرا کند.
حال به پوشه ای که در آن نرم افزار را نصب کرده اید بروید. مسیر پیش فرض نصب شده درایو C می باشد . C:xampp
پس از رفتن به این مسیر به دنبال پوشه ی htdocs بروید. این پوشه دقیقا همان جایی است که فایل های PHP در آن قرار می گیرد. سعی کنید پروژه های خود را در پوشه های جداگانه قرار دهید تا دسترسی به آن ها آسان تر شود. برای مثال با توجه به عکس زیر، سعی بر این داریم تا کد های مقدماتی را در پوشه ی introduction Php ذخیره کنیم.
همچنین نیازی به سایر پوشه ها نیست و می توانید پوشه ی htdocs را کاملا خالی کنید.
در قسمت بعد باید که نام فایل خود را بدون پسوند .Php ذخیره کنید. من نام فایلم را “۱٫hello world” قرار دادم.
در این صفحه ی یک سری توضیحات مربوط به نام لپ تاپ شما تاریخ و زمان وجود دارد. هر چه وجود دارد را پاک کنید و قطعه کد زیر را بنویسید.
1
2
3
4
5
6
7
8
9
10
|
<!DOCTYPE html>
<html>
<head>
<meta charset=“utf-8”>
<title> tutorial php in Mahtuta </title>
</head>
<body>
<?php echo ‘Hello World’;?>
</body>
</html>
|
لازم به ذکر است که در برنامه ی Phostorm نیاز به ذخیره ی فایل نیست و به طور خودکار برنامه ی شما save می شود.
بنابراین کافی است مرورگر خود را باز کرده و به آدرس http://localhost/introduction_php/1.hello_world.php بروید تا Hello World به نمایش درآید.
حال برنامه جدیدی بنویسید و قطعه کد زیر را در آن به کار گیرید.
1
|
<?php echo ‘Hello World’;?>
|
پس از دیدن آن در مرورگر متوجه خواهیم شد که تفاوتی نمیکنند. به این موضوع در جلسه ی مقدماتی از آموزش پی اچ پی اشاره شده بود.
تبریک میگم شما موفق شدید تا جلسه اول Php را پشت سر بگذارید.
مقدمه این قسمت آموزش برنامه نویسی PHP

در این مقاله از مجله اینترنتی ماهتوتا با جلسه دوم Php در خدمت شما هستیم .
در قسمت قبل در جلسه اول Php ابزار های مورد نیاز برای شروع کار را بررسی کردیم و کار خود را با Xampp و Phpstorm جلو بردیم و یا به اختصار نحوه ی اجرای کد های Php را مورد بررسی قرار دادیم، که سرانجام موفق به نوشتن برنامه ی کوتاهی در آن شدیم.
با ما باشید تا در جلسه دوم Php به مباحث زیر بپردازیم.
۱) تفاوت Print و echo
۲) ادغام کدهای HTML با PHP
۳) تفاوت تک کوتیشن و دابل کوتیشن در Php
۴) و البته در این جلسه دوم Php “متغیر ها” را نیز زیر ذره بین مجله اینترنتی ماهتوتا خواهیم برد.
متغیر ها php

در این قسمت از جلسه دوم Php شما را با متغیر ها در پی اچ پی آشنا می کنیم.
متغیر ها می توانند حروفی کوچک و بزرگ باشند که البته زبان برنامه نویسی Php به بزرگ و کوچک بودن حروف حساس است اما توجه کنید که متغیر ها در پی اچ پی نباید با اعداد شروع شوند. برای مثال Variable درست و ۲۲Variable نادرست است. همچنین در متغیر ها نباید فاصله وجود داشته باشد.
اگر از علامت $ قبل از یک رشته استفاده کنید، آن رشته تبدیل به متغییر خواهد شد. و شما می توانید بعدا آن را فراخوانی کنید.
در کل متتغیر ها را می توان به دو دسته ی کلی تقسیم کرد.
دسته ی اول متغیر هایی که در طول برنامه ممکن است تغییراتی کنند.
اما در دسته ی دوم متغیر هایی وجود دارند که در طول برنامه ثابت می مانند. این دسته از متغیر ها با دستور پیشفرض define تعریف می شوند و شامل سه قسمت می باشند که در قسمت اول نام متغییر و در قسمت دوم مقدار متغیر و در قسمت سوم دستور false و یا true قرار میگیرد.
حتما توجه به این نکته دارید که قسمت اول و دوم دستور define تا آخر برنامه ی شما ثابت می مانند.
به قطعه کد زیر دقت کنید.
1
2
3
4
5
6
7
8
9
10
11
|
<?php
$x = 10;
$txt = “mahtuta.com”;
echo “I love $txt!”;
echo “<hr>”;
define(“name”,“sajjad”);
echo name;
echo “<br>”;
define(“family”,“hosseinzadeh”,true);
echo family;
?>
|
نکته۱: قسمت سوم دستور define حالت پیشفرض false را دارد.
نکته۲: دستور ;”<echo “<hr برای کشیدن یک خط در صفحه است. و دستور ;”<echo “<br برای رفتن به خط بعد می باشد.
حال به قطعه کد زیر دقت کنید. دو رشته ی $empty1 و $empty2 را تولید کرده ایم.
1
2
3
4
5
6
7
8
|
<?php
$empty1 =”;
$empty2 =null;
echo gettype($empty1);
echo “<br>”;
echo gettype($empty2);
?>
|
نکته۱: توجه داشته باشید که رشته ی empty1 رشته ایی خالی است اما در رشته ی empty2 هیچ چیز وجود ندارد و این دو نیز متفاوت هستند.
نکته۲: تابع (gettype($var برای بررسی نوع داده می باشد. مقدار ورودی آن باید از نوع یک استرینگ باشد.
نکته۳: یکی از اساسی ترین نکاتی که شما در مقدمات Php ملزم به یادگیری آن هستید، متغیر ها هستند که شما در جلسه دوم Php آن را آموختید.
تفاوت تک کوتیشن و دابل کوتیشن در Php

در ابتدا باید بدانید که رشته ها متشکل از حروف انگلیسی و حروف فارسی و یک سری از کاراکتر های خاص (مانند @ و & ) و البته به همراه اعداد می باشند.
اما برخی علائم نظیر $ هستند که در دسته ی رشته ها قرار نمیگیرند و شما نمی توانید از آن در رشته استفاده کنید. مگر در موارد خاص. زیرا این علامت خود برای شناسایی متغییرها استفاده میشود.
به قطعه کد زیر توجه کنید.
1
2
3
4
|
<?php
$txt = ” tutorial php in Mahtuta “;
echo $txt;
?>
|
خروجی کد بالا:
tutorial php in Mahtuta
اما توجه داشته باشید که هر چیزی ما بین ‘ ‘ قرار گیرد، را رشته می نامند. به مثال زیر توجه کنید.
1
2
3
4
5
6
7
8
|
<?php
$x=5;
echo “number $x”;
echo “<br>”;
echo ‘number $x’;
echo “<br>”;
echo “number 5”;
?>
|
خروجی کد بالا:
number 5
number $x
number 5
با توجه به خط دوم از خروجی کد بالا متوجه شدیم که حتی $ هم اگر در ‘ ‘ قرار گیرد به عنوان رشته محسوب خواهد شد.
برای پی اچ پی مقدماتی آن چه که شما در این جلسه دوم Php آموختید، کافی است اما برای دانستن بیشتر و تخصصی تر مطلب پیشنهاد میشه که اینجا رو کلیک کنید.
ادغام کدهای HTML با PHP
یکی از مزیتهای زبان برنامهنویسی Php این است که میتوان به سادگی آن را با کدهای HTML ادغام کرد. در واقع نرمافزار های وب سرور هر آن چه که مابین تگ <?php ?> قرار گیرد را به عنوان کد های پی اچ پی و هر آنچه خارج از این تگ باشد را به عنوان زبان Html می شناسد.
-حالت اول) در قسمت های قبل وقتی از تگ های “<hr>” و “<br>” استفاده میکردیم درواقع نوعی عمل ترکیب این دو زبان را انجام میدادیم. توجه داشته باشید که تگ های دیگر را نیز همچون <h1> تا <h6> ، تگ <a> ، تگ هایی مرتبط با فونت مانند <b> ، <i> ، <del> ، تگ های مرتبط با لیست های مرتبط و نامرتب <ul> ، <ol> ، <li> و بسیاری از تگ های دیگر Html را می توان درون خط های Php استفاده کرد.
-حالت دوم) گاهاً نیاز است تا قسمت هایی از کد های Html خود را حذف کنید و برای معادل آن از تکه کدی Php استفاده کنید. این اتفاق هم ممکن است. که در جلسات آینده کامل به بررسی کد های آن خواهیم پرداخت.
-حالت سوم) نوعی دیگر از ترکیب این گونه است که می توان کد های Php خود را در قالب Html و مابین تگ body قرار داد. از مزیت این کار می توان به تغییر فونت و اضافی کردن زبان فارسی با فرمت UTF-8 و اضافی کردن استایل های Css اشاره کرد. مثال این بخش را می توانید در قسمت تفاوت Print و echo ببینید.
شما در حال آموزش و یادگیری جلسه دوم Php می باشید.

تفاوتPrint و echo
تقریبا هر دو یک کار را انجام می دهند. اما باز هم یک سری تفاوت هایی دارند.
باید بدانید که سرعت انجام echo بیشتر است و این که Print یک تابع می باشد. پس مقدار ۰ و ۱ را return می کند در حالی که دستور echo هیچ خروجی ندارد. دستور print بعد از چاپ عدد ۱ را بر ميگرداند. در مثال زیر خروجی تابع Print را در متغیری به نام s ذخیره کرده ایم.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!DOCTYPE html>
<html lang=“en”>
<head>
<meta charset=“UTF-8”>
<title>merger Php and Html</title>
</head>
<body>
<?php
echo “mahtuta.com”.“<hr>”;
$s=print (“www.mahtuta.com <br>”);
echo $s;
?>
</body>
</html>
|
نکته: با توجه به توضیحات قبل توجه داشته باشید که فایل بالا را باید با پسوند .php ذخیره نمایید.
تبریک میگم شما موفق شدید تا جلسه دوم PHP را پشت سر بگذارید.
مقدمه
در این مقاله از مجله اینترنتی ماهتوتا با جلسه سوم Php در خدمت شما هستیم .
در قسمت قبل در جلسه دوم PHP انواع متغیر ها را بررسی کردیم. سپس به بررسی تفاوت تک کوتیشن و دابل کوتیشن در PHP پرداختیم. کد های HTML و PHP را ادغام کردیم. سر آخر نیز تفاوت Print و echo را نشان دادیم.
با ما باشید تا در جلسه سوم PHP به مباحث زیر بپردازیم.
۱) عملگرها در PHP
۲) ثبت کامنت ها و توضیحات در زبان پی اچ پی
عملگرها در PHP
در جلسه سوم PHP کار خودمان را با عملگرها آغاز میکنیم. عملگرها برای انجام عملیات بر روی متغیرها و مقادیر استفاده می شوند. با بیانی واضح تر ما می دانیم که ۳ + ۸ برابر ۱۱ می باشد. در اینجا اعداد ۳ ، ۸ و ۹ operand و یا عملوند نامیده می شوند. همچنین”+ و =” نیز عملگر یا operator هستد.
زبان پی اچ پی از عمگر های زیر پشتیبانی می کند.
عملگرهای محاسباتی (Arithmetic Operators)
عملگرهای مقایسهای (Comparison Operators)
عملگرهای منطقی (Logical Operators)
عملگرهای نسبت دهی (Assignment Operators)
عملگرهای افزایشی و کاهشی (Increment & Decrement)
عملگر های رشته ای (String Operators)
عملگر های آرایه ای (Array Operators)
در جلسه سوم PHP به طور مفصل بر روی عملگر ها پرداخته می شود.
عملگرهای محاسباتی آموزش php

عملگر های محاسباتی زیر توسط زبان پی اچ پی پشتیبانی می شوند. فرض را بر این بگیرید که عملوند A مقدار ۱۰ و عملوند B مقدار ۲۰ را اختیار کرده است.
عملگرهای مقایسهای آموزش php
عملگرهای مقایسه ای زیر توسط زبان پی اچ پی پشتیبانی می شوند. همانند بخش قبل فرض را بر این بگیرید که عملوند A مقدار ۱۰ و عملوند B مقدار ۲۰ را اختیار کرده است.
آموزش برنامه نویسی php عملگرهای منطقی
عملگرهای مقایسه ای زیر توسط زبان پی اچ پی پشتیبانی می شوند. همانند بخش قبل فرض را بر این بگیرید که عملوند A مقدار ۱۰ و عملوند B مقدار ۲۰ را اختیار کرده است.
شما در حال آموزش و یادگیری جلسه سوم Php می باشید.
عملگرهای نسبت دهی php
عملگرهای نسبت دهی زیر توسط زبان پی اچ پی پشتیبانی می شوند.
عملگرهای افزایشی و کاهشی آموزش برنامه نویسی php
با چند مثال ساده روش کار با آن ها را می آموزیم. فرض را بر این بگیرید که عملوند A مقدار ۱۰ و عملوند B مقدار ۲۰ را اختیار کرده است.
عملگر های رشته ای php
به دو روش عملگر های رشته ایی را توضیح می دهیم.
آموزش برنامه نویسی php عملگر های آرایه ای
عملگرآرایه برای مقایسه ی آرایه ها استفاده می شود. آموزش این قسمت در جلسات آینده بعد از آموزش آرایه ها خواهد بود.
معرفی کامل سه روش کامنت گذاری

همانطور که گفتیم در جلسه سوم PHP انواع روش استفاده از کامنت گذاری در زبان پی اچ پی را مورد بررسی قرار می دهیم. همیشه یک سری از توضیحات کوتاه می تواند شما را از سردرگمی در یک برنامه ایی با تعداد خط بالا کمک کند. همچنین اگر مشغول انجام پروژه ایی هستید از کامنت استفاده کنید تا افراد نیز بتوانند دسترسی بهتری به کد شما داشته باشند. توجه داشته باشید که خط کامنت شما اجرا نخواهد شد و در مرورگر به نمایش در نخواهد آمد.
به سه روش می توانید از کامنت گذاری بهره ببرید.
به قطعه کد زیر از جلسه سوم Php توجه کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
$text1=/* tutorial Php in */“mahtuta”;
$text2=“.com”;
echo $text1.$text2;
// this line is Comment
# this line is comment
/*
This paragraph
is also
in comment
*/
?>
|
تبریک میگم شما موفق شدید تا جلسه سوم PHP را پشت سر بگذارید.
مقدمه
در این مقاله از مجله اینترنتی ماهتوتا با جلسه چهارم PHP در خدمت شما هستیم .
در قسمت قبل در جلسه سوم PHP تک به تک عملگر ها را در PHP بررسی کردیم.البته ورود کردن به بحث عملگر های آرایه ای ملزم به یادگیری این جلسه بود. سرانجام مبحثی ساده اما فوق العاده لازم، با عنوان “ثبت کامنت ها و توضیحات در زبان پی اچ پی” را بیان کردیم.
با ما باشید تا در جلسه چهارم PHP به مباحث زیر بپردازیم.
۱) تعریف و نحوه کار با آرایه ها
۲) تابع count( )
۳) تابع print_r و var_dump
۴) عملگر های آرایه ای
تعریف و نحوه کار با آرایه ها PHP
آرایه یک متغیر خاص است که می تواند چند مقدار را در خود ذخیره کند. برای مثال شما نیاز به ذخیره ی تعداد ۵۰ عدد را دارید. یا نیاز به ذخیره ی ۲۰ کلمه را دارید. یک آرایه می تواند تمامی آن ها را درون خود ذخیره کنند.
در جلسه چهارم PHP می آموزید که آرایه ها به سه دسته تقسیم می شوند.
-آرایه عددی (numeric array)
-آرایه متناظر یا انجمنی (associative arrays)
-آرایه تودرتو (multidimensional arrays)
– آرایه عددی
در این نوع از آرایه هر عضو عدد منحصر به فرد خود را دارد. و اولین عضو عدد صفر را اختیار می کند. به مثال زیر از جلسه چهارم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
10
|
<?php
$city = array(
‘alborz’,
‘gilan’,
‘khorasan’,
‘sari’
);
echo $city[1];
?>
|
خروجی کد بالا :
1
|
gilan
|
۲) تابعcount( )
به وسیله ی این تابع می توان طول یک آرایه را محاسبه کرد.
1
2
3
4
|
<?php
$city = array(‘alborz’,‘gilan’,‘khorasan’,‘sari’);
echo count($city);
?>
|
خروجی کد بالا :
1
|
4
|
نکته۱: طول آرایه ۴ است اما آخرین مقدار، عدد ۳ را اختیار کرده است.
نکته۲: آرایه را هم می توان درون یک خط نوشت و هم به صورت خط های مجزا
– آرایه متناظر
این آرایه تقریبا شبیه آرایه عددی است. اما برای هر مقدار یک شناسه وجود دارد. به مثال زیر از جلسه چهارم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
10
|
<?php
$city = array(
‘karaj’ => ‘alborz’,
‘rasht’ => ‘gilan’,
‘mashhad’ => ‘khorasan’,
‘mazandaran’ => ‘sari’
);
echo $city[‘rasht’];
?>
|
خروجی کد بالا :
1
|
gilan
|
– آرایه تودرتو
همانطور که از اسم آن پیداست، در این قسمت به راحتی می توان درون یک آرایه، آرایه ایی دیگر و درون آن باز هم آرایه ایی دیگر (به تعداد دلخواه) استفاده کرد.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php
$sherkat = array(
array(
‘modir_arshad’ => ‘ali’,
‘moaven’ => ‘hasan’,
‘dastyar’ => ‘reza’,
‘monshi’ => ‘omid’
),
array(
‘800’,
‘700’,
‘600’,
‘500’
)
);
echo $sherkat[1][2];
?>
|
در مثال بالا آرایه ایی تعریف کرده اییم. که درون آن دو آرایه وجود دارد. آرایه ی اول مقدار ۰ و آرایه ی دوم مقدار ۱ را نیز اختیار کرده است. آرایه ی اول از نوع متناظر و آرایه ی دوم از نوع عددی است.
خروجی کد بالا:
1
|
600
|
حال فرض کنید نیاز به نام منشی در آرایه داریم.
1
|
echo $sherkat[0][‘monshi’];
|
خروجی کد بالا:
1
|
omid
|
نکته: درون آرایه ایی که اکنون تعریف کردیم دو آرایه وجود داشت، که خود از نوع عددی بودند و مقدار اولی ۰ و دومی ۱ بود. توجه داشته باشید که خودِ این آرایه های تودرتو می توانستند از نوع آرایه ی متناظر باشند و هر کدام شناسه ایی داشته باشند. به مثال زیر از جلسه چهارم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php
$sherkat = array(
‘karmandan’ => array(
‘modir_arshad’ => ‘ali’,
‘moaven’ => ‘hasan’,
‘dastyar’ => ‘reza’,
‘monshi’ => ‘omid’
),
‘dastmozd’ => array(
‘800’,
‘700’,
‘600’,
‘500’
)
);
echo “dastmozd “ .$sherkat[‘karmandan’][‘monshi’] .” “ .$sherkat[‘dastmozd’][3] .” ast.”;
?>
|
خروجی کد بالا:
1
|
dastmozd omid 500 ast.
|
شما در حال آموزش و یادگیری جلسه چهارم PHP آرایه می باشید.
۳) تابع print_r و var_dump
تابع print_r در PHP ، تمامی عناصر یک آرایه را نمایش می دهد. اما تابع var_dump با جزییات بیشتر، به طوری که هم نوع و هم مقدار عناصر را نمایش می دهد. به مثال زیر از جلسه چهارم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<pre>
<?php
$a=array(
‘800’,
array(10, “messi”),
‘600’,
‘ali’
);
print_r($a);
echo ‘<hr>’;
var_dump($a);
?>
</pre>
|
خروجی کد بالا:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
Array
(
[0] => 800
[1] => Array
(
[0] => 10
[1] => messi
)
[2] => 600
[3] => ali
)
________________________________________
array(4) {
[0]=>
string(3) “800”
[1]=>
array(2) {
[0]=>
int(10)
[1]=>
string(5) “messi”
}
[2]=>
string(3) “600”
[3]=>
string(3) “ali”
}
|
نکته: در کد بالا، قبل و بعد از تگ <php ?> از تگ باز و بسته ی <pre> </pre> استفاده کردیم. این تگ خروجی را به طور مرتب تری به نمایش در می آورد. شما نیز یک بار بدون این تگ کد بالا را اجرا کنید.
یک مبحث از جلسه ی قبل باقی مانده بود.که دانستن آن نیازمند گذراندن بخش آرایه ها بود.حال به بررسی آن می پردازیم.
۴) عملگر های آرایه ای
ابتدا جدول را به دقت ملاحضه کنید، سپس توضیحات تکمیلی پایین جدول وجود دارد. همچنین این توضیحات در w3resource نیز موجود می باشد.
مثال عملگر Union (+):
ابتدا تفاوت a+$b$ و b+$a$ را ملاحضه نمایید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<pre>
<?php
$a=array(
‘First amount’ => ‘100’,
‘second amount’ => ‘200’,
‘third amount’ => ‘300’,
);
$b=array(
‘First amount’ => ‘600’,
‘second amount’ => ‘700’,
‘third amount’ => ‘800’,
‘Fourth amount’ => ‘ali’
);
$x=$a+$b;
$y=$b+$a;
var_dump($x);
echo ‘<hr>’;
var_dump($y);
?>
</pre>
|
خروجی کد بالا:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
array(4) {
[“First amount”]=>
string(3) “100”
[“second amount”]=>
string(3) “200”
[“third amount”]=>
string(3) “300”
[“Fourth amount”]=>
string(3) “ali”
}
________________________________________
array(4) {
[“First amount”]=>
string(3) “600”
[“second amount”]=>
string(3) “700”
[“third amount”]=>
string(3) “800”
[“Fourth amount”]=>
string(3) “ali”
}
|
نکته۱: در a+b عناصر a را نگه می دارد و عناصر b را به آن اضافه می کند. ولی در b+a ابتدا عناصر b را نگه داشته و سپس عناصر a را به آن اضافی می کند.
حال دو آرایه به اسم x و y داریم، که عناصر آن ها این گونه می باشد.
(‘x=array(100,200,300,’ali
(‘y=array(600,700,800,’ali
مثال عملگر Equal (==):
1
2
3
4
5
6
|
<?php
$a = array(“one” => “php”, “two” => “html”);
$b = array(“three” => “css”, “four” => “asp.net”);
var_dump($a == $b);
?>
|
خروجی کد بالا:
1
|
bool(false)
|
مثال تفاوت عملگر Equal (==) و Identity (===) :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?php
$str_1= 12345;
$str_2= ‘12345’;
$str_3= ‘12345ali’;
echo gettype($str_1).‘<br>’;
echo gettype($str_2).‘<br>’;
echo gettype($str_3).‘<br>’.‘<br>’;
if ($str_1 == $str_2)
{
echo ‘true <hr>’ ;
}
else
{
echo ‘false’;
}
if ($str_1 === $str_2)
{
echo ‘true’;
}
else
{
echo ‘false’;
}
?>
|
نکته۱: با عبارت شرطی if جلسه ی بعد آشنا می شویم.
نکته۲: str_1 از نوع اینتیجر(عددی,int) و str_2 و str_3 از نوع استرینگ(رشته,str) هستند.
نکته۳: به عبارتی ساده می توان بیان کرد که عملگر (==) فقط مقدار متغیر(value) را چک میکند. اما عملگر (===) علاوه بر چک کردن value ، نوع متغیر (type) را نیز بررسی می کند. پس در این مثال شرط اولی true و شرط دومی false می باشد.
خروجی کد بالا:
1
2
3
4
5
6
7
|
integer
string
string
true
________________________________________
false
|
مثال تفاوت عملگر Inequality (!=) و (<>) و Non-Inequality (!==) :
همانطور که در توضیحات جدول ملاحضه نمودید، عملگر (=!) و (<>) تفاوتی ندارند. اما تفاوت دو عملگر (=!) و (==!) را در مثال زیر از جلسه چهارم PHP ببینید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?php
$str_1= 123;
$str_2= ‘123’;
$str_3= ‘123ali’;
echo gettype($str_1).‘<br>’;
echo gettype($str_2).‘<br>’;
echo gettype($str_3).‘<br>’.‘<br>’;
if ($str_1 != $str_2)
{
echo ‘true’ ;
}
else
{
echo ‘false<hr>’;
}
if ($str_1 !== $str_2)
{
echo ‘true’;
}
else
{
echo ‘false’;
}
?>
|
خروجی کد بالا:
1
2
3
4
5
6
7
|
integer
string
string
false
________________________________________
true
|
نکته: همانند مثال قبل عملگر (=!) فقط مقدار متغیر(value) را چک میکند. اما عملگر (==!) علاوه بر چک کردن value ، نوع متغیر (type) را نیز بررسی می کند. پس در این مثال شرط اولی false و شرط دومی true می باشد.
مبحث آرایه ها به پایان رسید.حتما و حتما با انواع آرایه ها تمرین کنید.
تبریک میگم شما موفق شدید تا جلسه چهارم PHP را پشت سر بگذارید.
مقدمه این قسمت آموزش رایگان برنامه نویسی PHP
در این مقاله از مجله اینترنتی ماهتوتا با جلسه پنجم PHP در خدمت شما هستیم.
در قسمت قبل در جلسه چهارم PHP به بحث در رابطه با آرایه ها پرداختیم. آرایه ها همواره یکی از پرکاربردترین مباحث در زبان های برنامه نویسی هستند. همچنین انواع آرایه را بیان کردیم و مثال هایی کاربردی بیان شد. همچنین دو تابع مهم برای نمایش آرایه ها آورده شد. اما از جلسه سوم PHP مبحث عملگر های آرایه ای گفته نشده بود، که در جلسه ی قبل بیان شد.
با ما باشید تا در جلسه پنجم PHP به مباحث زیر بپردازیم.
۱( عبارت های شرطی if….else….elseif
۲) دستور switch
عبارت های شرطی
عبارت های شرطی یکی از پرکاربرد ترین مواردی است که در زبان های برنامه نویسی استفاده می شود. زبان PHP همانند بیشتر زبان ها این اجازه را به شما می دهد که کارهای مختلفی را بر اساس یک سری شروطِ خاصی انجام دهید.
در PHP ما عبارتهای شرطی زیر را داریم، که در جلسه پنجم PHP آن ها را بررسی می کنیم. همچنین برای کسب اطلاعات بیشتر می توانید در اینجا کلیک کنید.
– دستور شرطی if
– دستور شرطی if…else
– دستور شرطی if…elseif….else
– دستور شرطی switch
دستور شرطی if
ساختار if به صورت زیر می باشد. در دستور if اگر شرط عنوان شده درست باشد، کد اجرا خواهد شد.
1 2 3 4 5 |
<?php
if (شرط) { دستورالعمل } ?> |
به مثال زیر از جلسه پنجم PHP توجه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!DOCTYPE html>
<html> <body>
<?php $first_name = ‘sajjad’;
if ($first_name == ‘sajjad’) { echo “Hello Sajjad!”; } ?>
</body> </html> |
خروجی کد بالا:
1 |
Hello Sajjad! |
نکته: از آنجایی که متغیر name_first مقداری برابر sajjad را دارد، شرط مقدار true را باز میگرداند و دستور اجرا می شود و پیام نمایش داده میشود. اگر name_first را تغییر دهیم دستور echo اجرا نمی شود.
دستور شرطی if…else
ساختار if…else به صورت زیر می باشد. در دستور if…else اگر شرط عنوان شده درست باشد، دستورالعمل مربوط به آن اجرا خواهد شد. در غیر این صورت دستورالعمل مرتبط با else اجرا می شود.
1 2 3 4 5 6 7 8 |
<?php
if(شرط){ دستورالعمل } else{ دستورالعمل } ?> |
به مثال زیر از جلسه پنجم PHP توجه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<!DOCTYPE html>
<html> <body>
<?php $x = 5; $y = 8;
if ($x > $y) { echo “x is bigger than y”; } else { echo “x is smaller than y”; } ?>
</body> </html> |
خروجی کد بالا:
1 |
x is smaller than y |
نکته: دستور رابطه if نادرست است. (false می باشد)، حال مقادیر بین {} در else اجرا می شود.
فلوچارت if…else را با دقت بررسی نمایید.
شما در حال آموزش و یادگیری جلسه پنجم PHP می باشید.
دستور شرطی if…elseif….else
ساختار if…elseif….else به صورت زیر می باشد.
1 2 3 4 5 6 7 8 9 10 11 |
<?php
if(شرط){ دستورالعمل } elseif(شرط دوم){ دستورالعمل } else{ دستورالعمل } ؟> |
به مثال زیر از جلسه پنجم PHP توجه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<!DOCTYPE html>
<html> <body>
<?php $x = 5; $y = 8;
if ($x > $y) { echo “x is bigger than y”; } elseif ($x == $y) { echo “x is equal to y”; } else { echo “x is smaller than y”; } ?>
</body> </html> |
خروجی کد بالا:
1 |
x is smaller than y |
نکته: در دستور if…elseif….else ابتدا شرط if بررسی خواهد شد. اگر false بود حال سراغ شرط elseif خواهیم رفت. توجه داشته باشید که هر تعداد که مدنظر ما باشد می توانیم از elseif استفاده کنیم. سرانجام اگر شرط آخرین elseif هم false بود برنامه به سراغ else خواهد رفت.
فلوچارت if…elseif….else را با دقت بررسی نمایید.
دستور switch
گاهی اوقات نیاز داریم تا تساوی یک مقدار یا حرف بررسی کنیم. می توان از دستور elseif و یا switch استفاده کنیم. یکی دیگر از دستورات شرطی که در زبان برنامه نویسی PHP جود دارد، دستور switch است.
ساختار switch به صورت زیر می باشد.
1 2 3 4 5 6 7 8 |
switch ()
{ case 1 : دستورات break ; case 2 : دستورات break ; default : دستورات } |
به مثال زیر از جلسه پنجم PHP توجه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<html>
<body>
<?php $x=”admin”; switch ($x) { case “user”: echo “wellcome user”; break; case “writer”: echo “wellcome writer”; break; case “admin”: echo “wellcome admin”; break; default: echo “please exit”; } ?>
</body> </html> |
خروجی کد بالا:
1 |
wellcome admin |
نکته۱: همانطور که از اسم آن مشخص می باشد switch (به معنی تعویض کردن) است. switch یک ورودی دارد. switch ورودی خود را به عنوان یک عبارت و یا یک متغیر دریافت کرده و سپس آن را با مقدار مقابل هر case مقایسه می کند. اگر ورودی switch با مقدار مقابل case برار باشد، آنگاه دستورات مربوط به آن case تا قبل از رسیدن به اولین دستور break اجرا می شود.
نکته۲: در این مثال x ورودی switch می باشد که مقدار “admin” را اختیار کرده است. مسلماً اگر مقدار x را به user و یا writer تغییر دهیم، خروجی ما تغییر میکند.
نکته۳: حتما از دستور break استفاده کنید.
نکته۴: دستور break برای جلوگیری از ورود کد برای اجرای خودکار به case بعدی استفاده می شود. عبارت default زمانی استفاده می شود، که عبارت یکسانی با ورودی در ساختار سوئیچ یافت نشود.
تبریک میگم شما موفق شدید تا جلسه پنجم PHP را پشت سر بگذارید.
مقدمه این قسمت آموزش رایگان php
در این مقاله از مجله اینترنتی ماهتوتا با جلسه ششم PHP در خدمت شما هستیم.
در قسمت قبل در جلسه پنجم PHP به بحث در رابطه با عبارت های شرطی پرداختیم. ابتدا با دستور شرطی if آشنا شدیم. سپس if…else را بررسی کردیم. و در آخر elseif بیان شد.
در ابتدای هر کدام ساختار را بررسی کرده و مثالی ساده بیان شد. سرانجام برای درک بهتر مفهوم فلوچارتی از آن به نمایش گذاشتیم.
سر آخر به بررسی دستور شرطی switch پرداختیم و مثالی ساده اما کاربردی بیان کردیم.
در جلسه ششم PHP بحث حلقه ها را پیش می بریم. حلقه ها در پی اچ پی برای اجرای بخشی از کد که قرار است چندین بار اجرا شود، استفاده می شوند. پی اچ پی از چهار نوع حلقه پشتیبانی می کند.
۱) حلقه ی for
۲) حلقه ی while
۳) حلقه ی do-while
۴) حلقه ی foreach
حلقه ی for
حلقه ی for را زمانی استفاده میکنیم که تعداد دفعات اجرای کد یا عبارات مشخص باشد.
به فلوچارت آن از جلسه ششم PHP دقت فرمایید.
ساختار حلقه ی for به صورت زیر می باشد.
1
2
3
|
for (مقدار اولیه; شرط ; اجرای شمارنده){
دستورالعمل;
}
|
از مقدار اولیه اغلب برای شروع کار استفاده میکنیم. مقدار آن توسط شمارنده افزایش می یابد. شرط حلقه در قسمت دوم بیان می شود. و تا زمانی که شرط برقرار باشد، دستورات اجرا خواهند شد.
به مثال زیر از جلسه ششم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<html>
<body>
<?php
$x = 0;
$y = 0;
for( $i = 1; $i<=10; $i++ ) {
$x += 1;
$y += 2;
echo (“a = $x and b = $y”);
echo “<hr>”;
}
echo (“finally a = $x and b = $y” );
?>
</body>
</html>
|
خروجی کد بالا:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
a = 1 and b = 2
________________________________________
a = 2 and b = 4
________________________________________
a = 3 and b = 6
________________________________________
a = 4 and b = 8
________________________________________
a = 5 and b = 10
________________________________________
a = 6 and b = 12
________________________________________
a = 7 and b = 14
________________________________________
a = 8 and b = 16
________________________________________
a = 9 and b = 18
________________________________________
a = 10 and b = 20
________________________________________
finally a = 10 and b = 20
|
نکته۱: از متغییر i$ به عنوان شمارنده استفاده کردیم و در ابتدا شروع کارمان ۱ است. شمارنده ی i در هر دور از این حلقه یک واحد زیاد می شود. شرط بیان می کند: تا زمانی که مقدار $i برابر ۱۱ نشده است، شرط برقرار می باشد. بنابراین این حلقه ۱۰ دفعه تکرار خواهد شد و در هر مرحله به متغییر x$ یک واحد و به متغییر y$ دو واحد افزوده خواهد شد.
نکته ۲: در این حلقه از echo دوبار استفاده شد. یک بار در درون حلقه و یک بار هم بیرون حلقه . و به بیانی دیگر اولین echo، ۱۰ بار به اجبار در درون حلقه تکرار شد. و سرآخر دومین echo برای نمایش مقدار پایانیِ a$ و b$ نوشته شد.
حلقه ی while
تا زمانی که شرطِ حلقه ی while مقدار true را برمی گرداند، دستورات مربوط به آن اجرا خواهد شد.
به فلوچارت آن از جلسه ششم PHP دقت فرمایید.
ساختار حلقه ی while به صورت زیر می باشد.
1
2
3
|
while (شرط) {
دستورالعمل;
}
|
به مثال زیر از جلسه ششم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<html>
<body>
<?php
$i = 1;
$number = 1;
while( $i <= 10) {
$i++;
echo “hello”.$number;
$number += 1;
echo “<hr>”;
}
echo (“finally i=$i and number=$number”) ;
?>
</body>
</html>
|
خروجی کد بالا:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
hello1
________________________________________
hello2
________________________________________
hello3
________________________________________
hello4
________________________________________
hello5
________________________________________
hello6
________________________________________
hello7
________________________________________
hello8
________________________________________
hello9
________________________________________
hello10
________________________________________
finally i=11 and number=11
|
نکته۱: در ابتدای کار و خارج از حلقه ۱=i$ می باشد. و از آن جایی که در درون دستورالعمل ها این مقدار در هر دور یک واحد افزایش می یابد، شرط حلقه این گونه بیان می کند که تازمانی که این مقدار کمتر از ۱۱ می باشد دستورات را اجرا کن.
نکته ۲: سر آخر یک دستور echo نیز آوردیم که مقدار i$ و number$ را نمایش می دهد. از آنجایی که در دور آخر هر دو یک مقدار افزایش می یابند ولی شرط false می شود، این دو متغیر عدد ۱۱ را نمایش می دهند.
حلقه ی do-while
در ابتدا بدون بررسی شرط حلقه ی do-while یک بار اجرا می شود. سپس در صورتی حلقه تکرار خواهد شد، که شرطِ حلقه مقداری true داشته باشد.
به فلوچارت آن از جلسه ششم PHP دقت فرمایید.
ساختار حلقه ی do-while به صورت زیر می باشد.
1
2
3
|
دستورالعمل;
}
while (شرط);
|
به مثال زیر از جلسه ششم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<html>
<body>
<?php
$i = 0;
do {
$i++;
}
while( $i < 10 );
echo (“finally i stoped in number $i” );
?>
</body>
</html>
|
خروجی کد بالا:
1
|
finally i stoped in number 10
|
حلقه ی foreach
این حلقه تک به تک مقادیر حلقه را درون item$ می ریزد، تا کار های لازم را درون آن ها تک به تک انجام دهید.
ساختار حلقه ی do-while به صورت زیر می باشد.
1
2
3
|
foreach (array as item) {
دستورالعمل;
}
|
به مثال زیر از جلسه ششم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<html>
<body>
<?php
$city = array(
‘alborz’,
‘gilan’,
‘khorasan’,
‘sari’);
foreach($city as $item) {
echo $item. “<br>”;
}
?>
</body>
</html>
|
خروجی کد بالا:
1
2
3
4
|
alborz
gilan
khorasan
sari
|
نکته: آرایه ی بالا از نوع عددی می باشد. حتما یک بار آن را با آرایه ی متناظر امتحان کنید. تفاوتی در خروجی آن ها دیده نمیشود. با این نوع از آرایه ها در جلسه چهارم PHP آشنا شدیم.
تبریک میگم شما موفق شدید تا جلسه ششم PHP را پشت سر بگذارید.
مقدمه این قسمت دانلود کتاب آموزش php
در این مقاله از مجله اینترنتی ماهتوتا با جلسه هفتمPHP در خدمت شما هستیم.
در قسمت قبل در جلسه ششم PHP انواع حلقه ها در PHP را بررسی کردیم.رسم فلوچارت برای حلقه ها همیشه به فهم بهتر آن ها کمک می کند. از این رو برای هر کدام از حلقه های for، while، do-while و foreach علاوه بر آوردن مثالی ساده، فلوچارتی نیز رسم کردیم.
جلسه هفتم PHP را به حل تمرین اختصاص داده ایم. حتما تک تک آن ها را بررسی کرده و قبل از دیدن جواب، سعی کنید تا آن را حل کنید.
جلسه اول حل تمرین PHP
۱) برنامه ایی بنویسید، که خروجی زیر را نمایش دهد.
1
2
|
str1: this is a test /*8
str2: //congratulations
|
جواب های سوال ۱ در پایین صفحه قابل مشاهده است. تفاوت تک کوتیشن و دابل کوتیشن را در جلسه دوم PHP داشتیم.
۲) برنامه ایی بنویسید که با استفاده از تابع for خروجی زیر را تولید کند. تابع for را در جلسه ششم PHP ملاحضه نمودید.
1
2
3
4
|
C00
C01
C02
C03
|
جواب های سوال ۲ در پایین صفحه قابل مشاهده است. جلسه هفتم PHP
۳) برنامه ای بنویسید که مقدار دو متغیر را جابه جا کند. برای مثال: دو مقدار a= 12 و b=6 را به b=12 و a=6 تغییر دهد.
جواب های سوال ۳ در پایین صفحه قابل مشاهده است.
۴) فرض کنید x=10 و y=7 باشد. عملیات زیر را انجام دهید.
1
|
10 + 7 10 – 7 10 * 7 10 / 7 10 % 7
|
جواب هر کدام را در خطوط جداگانه در خروجی نمایش دهید. برای مثال ” ۱۰+۷ = ۱۷″
با عملگرهای محاسباتی در جلسه سوم PHP آشنا شده بودید.
جواب های سوال ۴ در پایین صفحه قابل مشاهده است. جلسه هفتم PHP
۵) مقدار value را در ابتدا ۸ قرار دهید.سپس ۲ واحد به آن اضافه کنید. حال ۴ واحد کم کنید. در مرحله ی بعد ۵ را در آن ضرب کنید. حال ۳ را به آن تقسیم کنید. اکنون یک واحد افزایش دهید. سرانجام یک واحد کاهش دهید. *توجه داشته باشید که حتما باید مقدار value را در هر مرحله دچار تغییر کنید.*
می توانید از عملگرهای نسبت دهی در جلسه سوم PHP کمک بگیرید.
جواب های سوال ۵ در پایین صفحه قابل مشاهده است.
۶) ششمی رو یه مثال کاربردی حل کردیم که همین جا جوابشو ببینید.
در جلسه چهارم PHP آموختیم که توابع var_dump() وprint_r() تمامی عناصر یک آرایه را نمایش می دهد. حال فرض کنید که برنامه ایی وسیع نوشته اید. برای این که متوجه شوید اکنون فلان متغیر چه مقداری را اختیار کرده است، کافی است که از این دوتابع استفاده کنید. به مثال زیر توجه کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php
$name=‘mahtuta’;
$number=123;
var_dump ($name);
echo “<br/>”;
print_r ($name);
echo “<br/>”;
var_dump ($number);
echo “<br/>”;
$name=null;
var_dump ($name);
?>
|
خروجی کد بالا:
1
2
3
4
|
string(7) “mahtuta”
mahtuta
int(123)
NULL
|
۷) شعاع دایره ایی برابر ۵ می باشد. محیط و مساحت آن را حساب کنید. و در خروجی به صورت زیر نمایش دهید.
مقدار محیط = Mohit
مقدار مساحت = Masahat
جواب های سوال ۷ در پایین صفحه قابل مشاهده است. جلسه هفتم PHP
۸) دانشگاهی قرار است بر اساس معدل دانشجویان به آنها مبلغی واریز نماید.جدول زیر این ترتیب مبالغ را نمایش می دهد. فرض کنید این مقادیر به نحوی وارد می شوند. شما با استفاده از if…else…elseif شروط جدول را تعیین کنید.
جواب های سوال ۸ در پایین صفحه قابل مشاهده است. جلسه هفتم PHP
شروط if…else…elseif در جلسه پنجم PHP بررسی شد.
۹) با استفاده از دستور switch برنامه ایی بنویسید که معادل عددی روز های هفته را بگیرد سپس روز معادل آن را چاپ کند. روز های هفته را با اعداد مشخص کنید فرض را بر این میگیریم که شنبه معادل ۰ است. بنابراین جمعه ۶ است. فرض کنید که کاربر عدد ۰ را وارد کرده است. که یعنی امروز شنبه می باشد.
جواب های سوال ۹ در پایین صفحه قابل مشاهده است.
دستور switch در جلسه پنجم PHP بررسی شد.
۱۰) مجموع و میانگین اعداد ۲۵ تا ۳۵ را با استفاده از حلقه ی for حساب کنید.
((۲۵ + ۲۶ + ۲۷ + …. +۳۵) / ۱۰ )
جواب های سوال ۱۰ در پایین صفحه قابل مشاهده است. جلسه هفتم PHP
حلقه ی for در جلسه ششم PHP بررسی شد.
۱۱) اعداد ۵- تا ۵ را با طول گام ۰٫۵ در خروجی چاپ کنید.
جواب های سوال ۱۱ در پایین صفحه قابل مشاهده است.
۱۲) برنامه ایی بنویسید که با حلقه ی for اعداد ۱ تا ۱۰ را به طور معکوس در خروجی چاپ کند.
جواب های سوال ۱۲ در پایین صفحه قابل مشاهده است. جلسه هفتم PHP
۱۳) با استفاده از for های تو در تو جدول ضرب ۶*۶ را به صورت زیر در خروجی چاپ کنید.
جواب های سوال ۱۳ در پایین صفحه قابل مشاهده است
۱۴) با استفاده از حلقه ی while برنامه ایی بنویسید که مضارب ۵ کوچکتر از عدد ۳۶ را در خروجی نمایش دهد.
جواب های سوال ۱۴ در پایین صفحه قابل مشاهده است. جلسه هفتم PHP
حلقه ی while نیز در جلسه ششم PHP بررسی شد.
جواب تمرین های بالا از جلسه هفتم PHP را در زیر ملاحضه می کنید.
توجه: ** اگر سوال ، ایراد، نظر و یا هر چیز دیگری مدنظر شما بود، می توانید آن را در کامنت ها مطرح کنید. **
جواب تمرین ۱ :
1
2
3
|
<?php
echo ‘str1: this is a test /*8’.“</br>”.‘str2: //congratulations’;
?>
|
جواب تمرین ۲ :
1
2
3
4
5
6
|
<?php
for ($i=0 ; $i<=3 ; $i++) {
echo “C0” . $i;
echo “<br>”;
}
?>
|
جواب تمرین ۲ به گونه ایی دیگر
1
2
3
4
5
6
7
|
<?php
$d = ‘C00’;
for ($i=0 ; $i<=3 ; $i++) {
echo $d++;
echo “<br>”;
}
?>
|
جواب تمرین ۳ :
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
$a = 12;
$b = 6;
$temp = null;
echo “at the first a = “.$a .” and b = “.$b ;
$temp = $b;
$b = $a;
$a = $temp;
echo “<br>”;
echo “now a = “.$a .” and b = “.$b ;
?>
|
شما در حال آموزش و یادگیری جلسه هفتم PHP می باشید.
جواب تمرین ۴ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php
$x = 10;
$y = 7;
$result=$x+$y;
echo “$x + $y = $result<br>”;
$result=$x–$y;
echo “$x – $y = $result<br>”;
$result=$x*$y;
echo “$x * $y = $result<br>”;
$result=$x/$y;
echo “$x / $y = $result<br>”;
$result=$x%$y;
echo “$x % $y = $result<br>”;
?>
|
جواب تمرین ۵ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
$Value = 8;
echo “Value is now $Value.<br/>”;
$Value += 2;
echo “Value is now $Value.<br/>”;
$Value -= 4;
echo “Value is now $Value.<br/>”;
$Value *= 5;
echo “Value is now $Value.<br/>”;
$Value /= 3;
echo “Value is now $Value.<br/>”;
$Value++;
echo “Value is now $Value.<br/>”;
$Value—;
echo “Value is now $Value.<br/>”;
?>
|
جواب تمرین ۷ :
1
2
3
4
5
6
7
8
9
|
<?php
$r = 5;
$pi = 3.14;
$mohit = 2*$pi*$r;
$masahat = $pi*(($r)^2);
echo “mohit = “.$mohit;
echo “masahat = “.$masahat;
?>
|
جواب تمرین ۸ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$input = null;
if ($input >= 18 and $input <= 20) {
echo “your money is 900,000”;
}
elseif ($input >= 15 and $input <= 17) {
echo “your money is 600,000”;
}
elseif ($input >= 12 and $input <= 14)
{
echo “your money is 300,000”;
}
else
{
echo “your money is 100,000”;
}
?>
|
جواب تمرین ۹ :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<?php
$x = 0;
switch ($x){
case 0:
echo “emroz shanbe ast.”;
break;
case 1:
echo “emroz 1shanbe ast.”;
break;
case 2:
echo “emroz 2shanbe ast.”;
break;
case 3:
echo “emroz 3shanbe ast.”;
break;
case 4:
echo “emroz 4shanbe ast.”;
break;
case 5:
echo “emroz 5shanbe ast.”;
break;
case 6:
echo “emroz jome ast.”;
break;
default:
echo “please exit”;
}
?>
|
جواب تمرین ۱۰ :
1
2
3
4
5
6
7
8
|
<?php
$x = null;
for ($i=25 ; $i <= 35 ; $i++){
$x = $x + $i;
}
echo “sum = “.$x .“<br/>”;
echo “avg = “.$x / 10;
?>
|
جواب تمرین ۱۱ :
1
2
3
4
5
|
<?php
for ($i=-5 ; $i <= 5 ; $i = $i + 0.5){
echo $i .“</br>”;
}
?>
|
جواب تمرین ۱۲ :
1
2
3
4
5
|
<?php
for ($i=10 ; $i >= 1 ; $i—){
echo $i .“</br>”;
}
?>
|
جواب تمرین ۱۳ :
1
2
3
4
5
6
7
8
9
|
<?php
echo ‘<pre>’;
for($x=1; $x<=6; $x++){
echo “</br>”;
for($y=1; $y<=6; $y++){
echo $x * $y.“t”;
}
}
?>
|
نکته ۱ : از “t” برای ایجاد table استفاده میکنیم.
نکته ۲ : تگ pre اطلاعات رو دقیقا به همان شکل که در سورس پیج می آید، نمایش میدهد.
جواب تمرین ۱۴ :
1
2
3
4
5
6
7
8
9
|
<?php
$i = 1;
while ($i < 37){
if ($i % 5 == 0) {
echo $i .“</br>”;
}
$i ++;
}
?>
|
سخن پایانی آموزش رایگان برنامه نویسی php
تبریک میگم شما موفق شدید تا جلسه هفتم PHP را پشت سر بگذارید. اگر تمرین مناسبی در ذهن شما وجود دارد که تا این لحضه به موضوعات آن پرداختیم، لطفا آن را در کامنت ها ثبت کنید.
مقدمه دانلود کتاب آموزش برنامه نویسی php
در این مقاله از مجله اینترنتی ماهتوتا با جلسه هشتم PHP در خدمت شما هستیم.
در قسمت قبل در جلسه هفتم PHP جلسه ایی حل تمرین را سپری کردیم.
در جلسه هشتم PHP بحث توابع (Functions) درPHP را پیش خواهیم برد. و به مبحاثی همچون
- آرگومان در تابع پی اچ پی
- مقدار پیش فرض آرگومان پی اچ پی
- عبارت return در توابع PHP
می پردازیم با ما باشید.
وجود بیش از ۱۰۰۰ نوع تابع در پی اچ پی نشانه قدرت این نرم افزار است. از ویژگی های توابع در PHP به موارد زیر می توان اشاره کرد:
در کنار توابع موجود در پی اچ پی شما خودتان میتوانید به صورت خلاقانه توابعی را ایجاد نمایید. همه ی این توابع می توانند به صورت پی در پی در برنامه اجرا شوند. سعی کنید نکات زیر را هم در ایجاد توابع رعایت کنید.
- نام تابع مورد نظر می تواند تنها حروف و علامت ها را شامل شود. پس اعداد در نام توابع جایی ندارند.
- نام تابع بر اساس نوع کاری که تابع انجام می دهد انتخاب شود. نحوه ی نوشتن توابع در PHP به صورت زیر است:
1
2
3
4
|
Function نام تابع ()
{
;دستورات
}
|
در مثال ساده ی زیر از جلسه هشتم PHP، تابع ای با نام hello ایجاد کرده ایم. همانطور که ملاحضه می کنید، دستورات مابین دو علامت کروشه قرار می گیرند.
1
2
3
4
5
6
7
|
<?php
function hello() {
echo “Hello world!”;
}
hello(); // فراخوانی تابع
?>
|
در طول برنامه، هر زمان که این تابع فراخوانی شود، خروجی زیر را تولید می کند.
!Hello world
آرگومان در تابع پی اچ پی
آرگومان ها در پی اچ پی همانند متغیر ها عمل می کنند. ابتدا به مثال زیر از جلسه هشتم PHP توجه نمایید.
1
2
3
4
5
6
7
8
9
10
|
<?php
function lastname($x) {
echo “$x afzali.<br>”;
}
lastname(“ali”);
lastname(“reza”);
lastname(“naghi”);
lastname(“amir”);
?>
|
آرگومان x$ به عنوان ورودی تابع در نظر گرفته می شود. در مثال بالا هنگام فراخوانی تابع، x$ مقادیر مختلفی می گیرد. فرض بر این شده است که ۴ فردی که به جای x$ قرار گرفته اند، فامیلی afzali دارند.
خروجی کد بالا از جلسه هشتم PHP :
.ali afzali
.reza afzali
naghiafzali
amir afzali
مثال بعدی یک تابع دو آرگومانه می باشد. به این مثال از جلسه هشتم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
|
<?php
function lastname($x, $year) {
echo “$x afzali. Born in $year <br>”;
}
lastname(“ali”,“1379”);
lastname(“reza”,“1378”);
lastname(“naghi”,“1377”);
?>
|
باید توجه کنید که وقتی تابع دو ورودی دارد، شما نیز زمان فراخوانی باید به آن دو ورودی بدهید.
خروجی کد بالا از جلسه هشتم PHP :
ali afzali. Born in 1379
reza afzali. Born in 1378
naghi afzali. Born in 1377
مقدار پیش فرض آرگومان پی اچ پی
زمانی که مقدار آرگومان را در تابع برابر مقداری قراردهیم، هنگامی که تابع را با همان مقدار خاص صدا می زنیم، دیگرلازم نیست مقدار دوباره بنویسیم. به مثال زیر از جلسه هشتم PHP توجه کنید.
1
2
3
4
5
6
7
8
9
10
|
<?php
function setHeight($minheight = 50) {
echo “The height is : $minheight <br>”;
}
setHeight(350);
setHeight(); // مقدار پیش فرض 50 را قرار می دهد.
setHeight(135);
setHeight(80);
?>
|
ملاحضه نمودید که در دومین فراخوانی مقداری قرار داده نشده است.
خروجی کد بالا از جلسه هشتم PHP :
The height is : ۳۵۰
The height is : 50
The height is : 135
The height is : 80
عبارت return در توابع PHP
هنگام استفاده از return مقدار تابع بازگردانی می شود. به مثال زیر از جلسه هشتم PHP توجه نمایید.
1
2
3
4
5
6
7
8
9
10
|
<?php
function sum($x, $y) {
$z = $x + $y;
return $z;
}
echo “5 + 10 = “ . sum(5,10) . “<br>”;
echo “7 + 13 = “ . sum(7,13) . “<br>”;
echo “2 + 4 = “ . sum(2,4);
?>
|
در این مثال زمانی که تابع را فراخوانی می کنیم، $z حاصل عبارت x$ و y$ را نمایش میدهد.
خروجی کد بالا :
۱۵ = ۵ + ۱۰
20 = 7 + 13
6 = 2 + 4
تبریک میگم شما موفق شدید تا جلسه هشتم PHP را پشت سر بگذارید.
آموزش رایگان زبان برنامه نویسی php
در این مقاله از مجله اینترنتی ماهتوتا با جلسه نهم PHP در خدمت شما هستیم.
در قسمت قبل در جلسه هشتمPHP بحث توابع (Functions) درPHP را پیش بردیم. موضوعاتی که بررسی شد،
آرگومان در تابع پی اچ پی
مقدار پیش فرض آرگومان پی اچ پی
عبارت return در توابع PHP
بودند. سعی کنید چندین تابع برای خود تعریف کنید. همچنین تمرین های مناسبی در این قسمت وجود دارد. کلیک کنید.
اما در جلسه نهم PHP قصد داریم تا مبحثی که در جلسه چهارم PHP بیان شد را کمی گسترش دهیم.
پس آرایه ها را مورد بررسی قرار می دهیم. و به سوالاتی همچون :
چه زمانی از آرایه استفاده می کنیم؟
آرایه چه کاربردی دارد ؟
چگونه می توان آرایه ها را مرتب کرد ؟
پاسخ مناسبی می دهیم.
آرایه ها در PHP
در جلسه دوم PHP شما را با متغییر ها آشنا نمودیم. پس می دانیم که یکی از ساده ترین راه های ذخیره سازی داده ها در زبان برنامه نویسی استفاده از متغیر ها Variable می باشد. حال اگر تعداد زیادی متغیر داشته باشیم، که همگی از یه نوع باشند، مثلا همگی int و یا str باشند، به جای این که چندین متغیر تعریف کنیم، می توانیم از یک آرایه در PHP استفاده کنیم. پس آرایه ها به گروهی از متغیر ها گفته می شوند که دارای جنسی یکسان -و گاهی هم غیر یکسان-هستند. در حقیقت یک متغیر می تواند چندین مقدار را در یک متغیر واحد ذخیره کند.
به مثال زیر از جلسه نهم PHP توجه کنید.
1
2
3
4
|
<?php
$student =array(“morteza”,“pouria”,“mehdi”);
echo $student[0],” is a programerand “,$student[2],” is a graphicdesigner.”;
?>
|
توجه داشته باشید که اولین خانه از آرایه مقدار ۰ ، و آخرین خانه مقدار n-1 را دارد.
خروجی کد بالا از جلسه نهم PHP :
morteza is a programer and mehdi is a graphic designer.
عکس زیر را ملاحضه کنید. حال می توان به این سوال پاسخ داد که چه زمانی از آرایه استفاده می کنیم؟ و آرایه چه کاربردی دارد ؟ فرض کنید شما ۱۰ داده داشته باشید، آیا نیاز به ساخت ۱۰ متغیر دارید؟ خیر کافی است یک آرایه تعریف کنید که تمامی این ۱۰ را در خود ذخیره کند.
مرتب کردن آرایه ها در PHP
همیشه راهی برای مرتب سازی وجود دارد. مقادیر یک آرایه را می توان به صورت الفبایی و یا اعداد از کوچک به بزرگ و یا بالعکس مرتب سازی نمود. در لیست زیر از جلسه نهم PHP توابعی برای مرتب کردن آرایه ها وجود دارد.
()sort : آرایه ها را با روند افرایشی مرتب میکند.
()rsort : آرایه ها را با روند کاهشی مرتب می کند.
()asort : آرایه های انجمنی را با روند افزایشی و براساس ارزش آن ها مرتب می کند.
()ksort : آرایه های انجمنی را با روند افزایشی و بر اساس کلید آن ها مرتب می کند.
()arsort : آرایه های انجمنی را با روند کاهشی و بر اساس ارزش آن ها مرتب می کند.
()krsort : آرایه های انجمنی را با روند کاهشی و بر اساس کلید آن ها مرتب می کند.
طرز کار همه ی این توابع همانند هم می باشند. به اختصار از ()sort مثالی می آوریم.
تابع () sort در PHP :
در مثال زیر از جلسه نهم PHP تابع ()sort را بررسی کردیم.
1
2
3
4
5
6
7
8
9
|
<?php
$student = array(“morteza”,“pouria”,“mehdi”);
sort($student);
$length=count($student);
for($x=0; $x < $length; $x++) {
echo $student[$x];
echo “<br>”;
}
?>
|
متغیر superglobal در PHP
این نوع از متغیر ها اولین بار در نسخه ۴٫۱ PHP ارایه شدند. در زیر از جلسه نهم PHP متغیر های superglobal در PHP را معرفی می کنیم.
– GLOBALS
– SERVER_$
– REQUESTPOST_$
– GET_$
– FILES_$
– ENV_$
– COOKIE_$
– SESSION_$
در ادامه جلسه نهم PHP برخی از این متغیر ها را بررسی می کنیم.
متغیر GLOBALS$ در PHP
ابتدا مثال زیر را در نظر بگیرید.
GLOBALS$ یک متغیر Superglobals در PHP است که برای برای دسترسی به متغیرها از هر نقطه در اسکریپت PHP (و نیز از داخل توابع و یامتدها) ، استفاده میشود. PHP همه متغیرهای سراسری را در آرایه ای به نام [GLOBALS[index $ ذخیره میکند که index نام متغیر رانگهداری میکند.
مثال زیر از جلسه نهم PHP روش استفاده از متغیر سراسری GLOBALS $ را نشان میدهد:
1
2
3
4
5
6
7
8
9
10
11
|
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS[‘z’] = $GLOBALS[‘x’] + $GLOBALS[‘y’];
}
addition();
echo $z;
?>
|
در مثال بالا از جلسه نهم PHP، از آنجایی که z یکی از متغیرهای داخل آرایه $GLOBALSمی باشد، در خارج از تابع نیز قابل دسترسی است.
متغیر SERVER_$ در PHP
SERVER_$ نیز یکی از متغیرهای سراسری در PHP است که نگهدارنده اطلاعاتی در مورد هدر،مسیرها، و مکان اسکریپت میباشد.
مثال زیر از جلسه نهم PHP روش استفاده از برخی از عناصر در SERVER_$ را نشان میدهد:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
echo $_SERVER[‘PHP_SELF’];
echo “(br)”;
echo $_SERVER[‘SERVER_NAME’];
echo “(br)”;
echo $_SERVER[‘HTTP_HOST’];
echo “(br)”;
echo $_SERVER[‘HTTP_REFERER’];
echo “(br)”;
echo $_SERVER[‘HTTP_USER_AGENT’];
echo “(br)”;
echo $_SERVER[‘SCRIPT_NAME’];
?>
|
باقی متغیر های superglobal را بعد از مبحث فرم ها به شما آموزش خواهیم داد.
تبریک میگم شما موفق شدید تا جلسه نهم PHP را پشت سر بگذارید. ادامه ی آموزش در روز های آتی قرار خواهد گرفت.
مقدمه آموزش رایگان برنامه نویسی php
در این مقاله از مجله اینترنتی ماهتوتا با جلسه دهم PHP در خدمت شما هستیم.
در قسمت قبل در جلسه نهم PHP مبحث جلسه چهارم PHP مربوط به آرایه ها را گسترش دادیم. در ابتدا یک یادآوری از “آرایه ها در PHP “ مطرح شد. سپس سعی بر این شد تا توابعی برای مرتب سازی آرایه ها نام برده شود. و سرآخر با متغیر های superglobal در PHP آشنا شدیم. هرچند ادامه ی مبحث آخر را به تناوب در باقی جلسات و این جلسه بیان می کنیم.
در این جلسه ( جلسه دهم PHP )، نحوه کار با فرم ها در پی اچ پی را مورد بررسی قرار می دهیم. پیشنهاد می شود که قبل از شروع این جلسه مبحث فرم ها در HTML را فرا گیرید. سپس به ادامه ی مبحث توجه کنید.
اما در این جلسه:
در این جلسه با مثالی جامع تقریبا تمامی بخش های یک فرم در html را بررسی می کنیم. و سپس نقش php در این فرم ها را توضیح می دهیم. با متد های GET_$ و POST_$ آشنا می شویم. و متوجه می شویم که کجا از آن ها استفاده کنیم.
یادآوری فرم در html
فرم هایی که توسط html نوشته می شوند، می توانند از کابر مقادیری را دریافت کنند. این فرم ها شامل یک یا چندین کنترل کادرِ متن، دکمه های انتخابی و منو هایی برای انتخاب گزینه ی مورد نظر می باشند.
همانطور که می دانید فرم زیر یک فرم html می باشد. به مثال زیر از جلسه دهم PHP توجه نمایید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<!DOCTYPE html>
<html lang=“en”>
<head>
<meta charset=“UTF-8”>
<title>form in php</title>
</head>
<body>
<h2>form in html</h2>
<form action=“27.form.php” method=“post”>
<fieldset style=“width: 600px;”>
<legend>register form</legend>
<input type=“text” name=“website” value=“mahtuta.com” readonly> <br>
<h2>Specifications:</h2>
fullname: <input type=“text” name=“fname” size=“25px” maxlength=“25”> <br>
password: <input type=“password” name=“pass”> <br>
<h2>choose your education:</h2>
<select>
<option value=“diplom” name=“diplom”>diplom</option>
<option value=“kardani” name=“kardani”>kardani</option>
<option value=“karshenasi” name=“karshenasi”>karshenasi</option>
<option value=“arshad” name=“arshad”>arshad</option>
</select>
<h2>choose your age:</h2>
<input type=“range” name=“age” min=“8” max=“100”>
<h2>Gender:</h2>
<input type=“checkbox” name=“gender” value=“Male” checked>Male
<input type=“checkbox” name=“gender” value=“Famle”>Famle
<input type=“radio” name=“gender” value=“Famle”>Other
<br><br>
<textarea name=“message” rows=“10” cols=“30”>type your comment:>></textarea>
<br><br>
<input type=“submit” value=“Submit” name=“submit”>
<input type=“reset” value=“reset” name=“reset”>
</fieldset>
</form>
</body>
</html>
|
خروجی کد بالا از جلسه دهم PHP :
فرم بالا بخش های زیادی دارد. سعی کنید تک به تک بخش های آن را بررسی کنید تا کمی برایتان یادآوری شود. اما اگر جایی از آن را مشکل دارید می توانید در پایین همین بخش کامنت بگذارید.
فرم ها در PHP
فرم html بالا را ملاحضه نمودید. این فرم اطلاعات متعددی از کاربر دریافت می کند. اما :
اطلاعات دریافت شده از فرم کجا میروند؟
ذخیره داده ها از فرم چگونه است؟
پی اچ پی چه نقشی خواهد داشت؟
و سر آخر کار با فرم ها در PHP چگونه است؟
آشنایی با متد های GET_$ و POST_$
هر دو متغیر superglobal ، در جلسه نهم PHP معرفی شدند. در این بخش قرار است تفاوت این دو را بررسی کنیم. هر دو متد، اطلاعات فرم را جمع آوری می کنند. کمی بالاتر مثالی از یک فرم آورده شد. که تقریبا همه کار انجام می داد. اگر توجه کنید ما در آن مثال از متد POST استفاده کردیم.
زمانی که کاربر تمامی کادر ها را پر کرده و بر روی Submit کلیک می کند، اطلاعات پر شده برای پردازش به فایل با نام ۲۷٫form.php ارسال می شوند. این در حالی است که این ارسال به وسیله ی متد HTTP POST ارسال شده است. این متد اطلاعات را در URL نمایش نمی دهد.
اما مثال بالا از جلسه دهم PHP را یک بار دیگر با متد GET اجرا کنید. ملاحضه می کنید که تمامی این اطلاعات در URL به نمایش در آمده اند.
اعتبارسنجی فرم در PHP
یک مثال ساده از نحوه ی کار با فرم
ابتدا مثالی که در ابتدای جلسه (جلسه دهم PHP ) آورده شد را در نظر بگیرید.
قطعه کد زیر را هم در فایلی با پسوند .php وارد کنید.
من نیز فایلی با نام ۲۷٫form.php ساخته ام.
مثال زیر از جلسه دهم PHP در نظر بگیرید.
1
2
|
Welcome <?php echo $_POST[“fname”]; ?><br>
Your email address is: <?php echo $_POST[“mail”]; ?>
|
حال در هر کجای فرم name برابر “ fname و mail “ باشد، مقدار آن چاپ می شود. برای مثال من fullname را sajjadhosseinzadeh و mail را [email protected] وارد کرده ام.
خروجی کد بالا از جلسه دهم PHP :
Welcome sajjadhosseinzadeh
Your email address is: [email protected]
تذکر۱: توجه داشته باشید که هر دو فایل با پسوند های .html و .php در کنار هم باشند. و برای اجرای فایل از قسمت localhost ، فایل با پسوند .html را باز کنید.
تذکر۲: برای نمایش همچین خروجی ای تنها پر کردن fullname و mail کافی است.
تذکر۳: توجه داشته باشید که اگر مقدار متد عبارت POST نبود. و مقدار GET را اختیار کرده بود، باید قطعه کد زیر اجرا می شد. مثال زیر از جلسه دهم PHP در نظر بگیرید.
1
2
|
Welcome <?php echo $_GET[“fname”]; ?><br>
Your email address is: <?php echo $_POST[“mail”]; ?>
|
جمع بندی :
بنابراین توجه داشته باشید که : GET_$ یک آرایه از متغیرهایی است که از طریق پارامترهای URL به اسکریپت فعلی منتقل می شود. و POST_$ یک آرایه از متغیرهایی است که از طریق روش HTTP POST به اسکریپت فعلی منتقل شده است. بنابراین هرگز از GET برای ارسال پسورد ها و یا دیگر اطلاعات مهم استفاده نکنید.
چه زمانی از POST استفاده کنیم؟
توجه داشته باشید اطلاعاتی که با روش POST ارسال می شوند، به دیگران نشان داده نمی شوند. ( یعنی تمامی اسامی / مقادیر درون بدنِHTTP تعبیه شده اند. ) و همچنین هیچ محدودیتی برای مقدار اطلاعاتی ارسال می شوند وجود ندارد.
علاوه بر این، POST از قابلیت های پیشرفته مانند پشتیبانی از ورودی باینری چند بخش در هنگام آپلود فایل ها به سرور پشتیبانی می کند.
ما نیز POST را برای ارسال اطلاعاتتان پیشنهاد می کنیم.
تمرین : به عنوان یک تمرین در جلسه دهم PHP شما نیز مانند من، کدِ فرمی را بنویسید که از دو کادر username و password تشکیل شده باشد. و فقط زمانی که کاربر دکمه ی submit را می زند، متنی را نمایش دهد. در غیر اینصورت هیچگونه متنی وجود نداشته باشد. (از عبارت های شرطی if….else….elseif استفاده کنید. جلسه پنجم PHP )
توجه کنید اگر کاربر حتی یکی از دو کادر ِ فرم را پر کرد و submit را زد، اِروری مبنی بر کار نادرست کاربر نمایش دهید.
جواب تمرین: در ابتدا سعی کنید تا جواب تمرین را خودتان به دست آورید.
جواب تمرین فرم ها در PHP از جلسه دهم PHP
فایل html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<html>
<body>
<form action=“29.exercise_form.php” method=“post”>
Username: <input type=“text” name=“name”><br>
Password: <input type=“password” name=“pass”><br>
<input type=“submit” name=“submit”>
</form>
</body>
</html>
|
فایل php
1
2
3
4
5
6
7
8
|
<?php
if ($_POST[‘submit’] and !empty($_POST[‘name’]) and !empty($_POST[‘pass’])){
echo ‘Welcome ‘. $_POST[“name”] .‘<br>’;
echo ‘Your password address is : ‘. $_POST[“pass”];
}elseif ($_POST[‘submit’] and empty($_POST[‘name’]) or empty($_POST[‘password’])){
echo ‘fill two section is necessary’;
}
?>
|
اگر سوالی از تمرین بالا داشتید میتونید تو کامنت ها بپرسید.
تبریک میگم شما موفق شدید تا جلسه دهم PHP و همچنین پی اچ پی مقدماتی را پشت سر بگذارید.
کتاب آموزش برنامه نویسی php
مقدمه آموزش پیشرفته php :
ما می توانیم جهان را ساخته شده از چیز های مختلفی مانند خورشید، زمین، ماه و … تصور کنیم. به طور مثال یک اتومبیل را فرض کنید که از چیز های مختلفی مانند چرخ، فرمان، دنده و غیره تشکیل شده است. به طور مشابه مفاهیم برنامه نویسی شی گرایی وجود دارند، که همه چیز را به عنوان یک شیء فرض می کند و یک نرم افزار را با استفاده از اشیاء مختلف اجرا می کند. شکل زیر از جلسه یازدهم PHP را در نظر بگیرید که مفهومی کلی از شی گرایی را بیان می کند.
اگر بخواهیم مثالی از دنیای واقعی بیان کنیم فرض کنید، خودرو میتواند یک کلاس باشد.
اساسا کلاسها را بدین منظور ایجاد میکنند که از آنها شیهای متنوعی بسازند مثلا از کلاس خودرو شیهای Audi و Volvo را میتوان داشت.
مفاهیم شی گرایی
قبل از اینکه به جزئیات مسئله بپردازیم، اجازه دهید تا در این قسمت از جلسه یازدهم PHP ، اصطلاحات مهمِ مربوط به برنامه نویسی شی گرایی را تعریف کنیم.
شی (object): ما یک کلاس را یک بار تعریف می کنیم و سپس بسیاری از اشیاء را که متعلق به آن هستند ایجاد می کنیم. هر شی بیانگر یک «حالت» یا یک «نمونه» (Instance) از کلاس خود است.
صفت(attribute): هر شی یکسری خصوصیات دارد که به آنها صفت گفته می شود که در واقع یک مقدار یا ارزش مشخصی برای آن به ازای هر شی می تواند وجود داشته باشد. وزن، قد، ارتفاع، طول، عرض و . . .
روش (method): هر شی یکسری رفتار دارد که به آنها روش (متد) گفته می شود. متد در واقع پاسخ هایی است که آن شی در مقابل تحریکات محیط از خود نشان می دهد.
کلاس (class): به مجموعه ای از اشيا که دارای ویژگی و رفتار (متد) مشترک می باشند، کلاس گویند. کلاس ماشین، کلاس انسان، کلاس دانشجو
متغیر عضو(member variable): متغیرهای تعریف شده درون کلاس. این داده در خارج از کلاس غیر قابل مشاهده بوده و می تواند توسط توابع عضو در دسترس باشند. این متغیرها در زمانی که شی ایجاد می شود صفت نامیده می شوند.
تابع عضو(member function): این ها توابع تعریف شده درون یک کلاس هستند و برای دسترسی به داده های شی استفاده می شود.
شما در حال آموزش و یادگیری جلسه یازدهم PHP می باشید.
ارث بری(inheritance): کلاس فرزند می تواند همه ی توابع و متغیر های کلاس پدر (و یا تعدادی از آن را) به ارث ببرد. به انجام این عمل به اصطلاح ارث بری گفتته می شود.
کلاس پدر(parent class): کلاسی که توسط کلاس دیگری به ارث برده می شود. همچنین به آن نیز کلاس پایه و یا سوپر کلاس گفته می شود.
کلاس فرزند(child class): کلاسی که از کلاس دیگری ارث بری می کند. همچنین به آن زیرکلاس هم گفته می شود.
چند ریختی(polymorphism): این مفهوم شی گرایی برای جایی به کار می رود که یک تابع بتواند برای چند هدف مختلف استفاده شود. برای مثال نام تابع همان خواهد بود اما ممکن است تعداد مختلفی از آرگومان ها را بگیرد و بتواند وظایف متفاوتی را انجام دهد.
تعریف کلاس های PHP
فرم کلی تعریف یک کلاس جدید در پی اچ پی
به مثال زیر از جلسه یازدهم PHP توجه نمایید.
1
2
3
4
5
6
7
8
9
10
11
|
<?php
class phpClass {
var $var1;
var $var2 = “constant string”;
function myfunc ($arg1, $arg2) {
[..]
}
[..]
}
?>
|
حال به بررسی خطوط می پردازیم:
O بعد از نام کلیدی کلاس، نامی که شما برای کلاس انتخاب می کنید، قرار خواهد گرفت.
O بین براکت های باز و بسته هر تعداد از اعلان های متغیر و تعاریف تابع می آید.
O اعلان متغیر با یک کلمه کلیدی var شروع می شود که به دنبال آن نام متغیر می آید. در هنگام اعلان متغیر می توانیم آن را مقداردهی اولیه نیز کنیم.
O تعریف تابع شبیه به تعریف توابع php است با این تفاوت که اما محلی به کلاس هستند و برای تنظیم و دسترسی به داده های شی مورد استفاده قرار می گیرند.
مثال: در قطعه کد زیر از جلسه یازدهم PHP ، یک کلاس از نوع کتاب داریم.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
class Books {
/* Member variables */
var $price;
var $title;
/* Member functions */
function setPrice($par){
$this–>price = $par;
}
function getPrice(){
echo $this–>price .“<br/>”;
}
function setTitle($par){
$this–>title = $par;
}
function getTitle(){
echo $this–>title .” <br/>”;
}
}
?>
|
متغیر this$ یک متغیر خاص است و اشاره به همان شی یعنی خودش دارد.
ساخت اشیا در PHP
هنگامی که کلاس خود را تعریف کردید، می توانید اشیاء زیادی را که دوست دارید از آن نوع کلاس ایجاد کنید. در زیر مثالی از نحوه ایجاد شی با استفاده از عملگر new آمده است:
1
2
3
4
|
$physics = new Books;
$maths = new Books;
$chemistry = new Books;
|
در اینجا ما سه شی ایجاد کردیم و این اشیا مستقل از یکدیگر هستند و موجودیت مجزای خودشان را دارند. در ادامه ی جلسه یازدهم PHP بررسی نحوه ی چگونگی دسترسی به تابع عضو و پردازش متغیرهای عضو را خواهید دید.
فراخوانی تابع عضو
بعد از ایجاد اشیای خود، شما قادر خواهید بود تا توابع عضو مرتبط به آن شی را فراخوانی کنید. یک تابع عضو می تواند متغیر عضو تابع مرتبط را پردازش کند. مثال زیر نشان می دهد که چگونه می توان با فراخوانی توابع عضو، قیمت و عنوان سه کتاب را مشخص کنیم.
1
2
3
4
5
6
7
8
|
$physics–>setTitle( “Physics for High School” );
$chemistry–>setTitle( “Advanced Chemistry” );
$maths–>setTitle( “Algebra” );
$physics–>setPrice( 10 );
$chemistry–>setPrice( 15 );
$maths–>setPrice( 7 );
|
حال می توانیم توابع عضو دیگری را فراخوانی کنیم تا مقادیر مشخص شده توسط مثال بالا را به دست آوریم.
1
2
3
4
5
6
7
|
$physics–>getTitle();
$chemistry–>getTitle();
$maths–>getTitle();
$physics–>getPrice();
$chemistry–>getPrice();
$maths–>getPrice();
|
به خروجی آن در جلسه یازدهم PHP توجه نمایید.
Physics for High School
Advanced Chemistry
Algebra
۱۰
۱۵
۷
با ادامه ی مباحث در جلسه دوازدهم PHP شی گرایی را تکمیل می کنیم.با ما همراه باشید.
تبریک میگم شما موفق شدید تا جلسه یازدهم PHP را پشت سر بگذارید.
آموزش php
در این جلسه :
توابع سازنده و مخرب را به خوبی آموزش خواهید دید. همچنین این نوید به شما داده خواهد شد که مبحث وراثت را کاملا موشکافی خواهیم کرد. و سرآخر تفاوت ما بین public،private و protected در کلاس ها را به بهترین شکل ممکن بیان خواهیم کرد.
توابع سازنده php
توابع سازنده نوع خاصی از توابع هستند که به طور خودکار هر زمان که یک شی ایجاد می شود، فراخوانی می شوند. ما میتواینم با بهره گیری مزیت این حالت برای مقداردهی اولیه به متغیر ها و یا انجام عملیاتی خاص استفاده کنیم.
PHP یک تابع خاص به نام ()construct__ برای تعریف توابع سازنده فراهم می کند. که ما می توانیم به تعداد دلخواه آرگومان ها را به تابع سازنده منتقل کنیم.
با توجه به مثال زیر از جلسه دوازدهم PHP تابع سازنده ایی برای کلاس Books ایجاد خواهد شد. که مقادیر price و title در زمان ایجاد شی مقداردهی می شود.
1
2
3
4
5
|
function __construct( $par1, $par2 ) {
$this–>title = $par1;
$this–>price = $par2;
}
|
حال برای مقداردهی price و title نیازی به فراخوانی توابع مجزا نداریم. ما می توانیم ۲ متغیر عضو را در زمان ایجاد شی مقداردهی کنیم. مثال زیر را بررسی کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$physics = new Books( “Physics for High School”, 10 );
$maths = new Books ( “Advanced Chemistry”, 15 );
$chemistry = new Books (“Algebra”, 7 );
/* Get those set values */
$physics–>getTitle();
$chemistry–>getTitle();
$maths–>getTitle();
$physics–>getPrice();
$chemistry–>getPrice();
$maths–>getPrice();
|
خروجی کد بالا به شرح زیر است:
Physics for High School
Advanced Chemistry
Algebra
۱۰
۱۵
۷
تخریب کننده
همانند تابع سازنده ما می توانیم یک تابع مخرب با استفاده از ()destruct__ تعریف کنیم. ما می توانیم همه ی منابع را درون یک مخرب آزاد کنیم.
ارث بری

تعاریف کلاس پی اچ پی میتوانند به صورت اختیاری با استفاده از عبارت کلیدی extends از یک تعریف کلاس پدر ارث بری کنند.
به ساختار syntax آن از جلسه دوازدهم PHP توجه کنید.
1
2
3
|
class Child extends Parent {
<definition body>
}
|
تاثیر ارث بری این گونه است که کلاس فرزند ( و یا زیر کلاس یا کلاس مشتق ) مشخصه های زیر را دارد:
– به طور خودکار همه اعلان های متغیر کلاس پدر را دارد.
– به طور خودکار همه توابع عضو را همانگونه که در کلاس پدر وجود دارند را دارا می باشد. که ( به طور پیشفرض ) همانند همانگونه که در کلاس پدر هستند، کار می کنند.
به مثال زیر توجه کنید. مثال زیر از کلاس Books ارث بری کرده است و همچنین قابلیت های بیشتری را بر اساس خواسته ها اضافی می کند.
1
2
3
4
5
6
7
8
9
10
11
12
|
class Novel extends Books {
var $publisher;
function setPublisher($par){
$this–>publisher = $par;
}
function getPublisher(){
echo $this–>publisher. “<br />”;
}
}
|
حال به غیر از توابع ارث بری شده، کلاس جدید دو تابع عضو بیشتر دارد.
شما در حال آموزش و یادگیری جلسه دوازدهم PHP می باشید.
Function Overriding
تعاریف تابع در کلاس های فرزند، تعاریف را با نام های مشابه در کلاس های پدر همپوشانی می کنند. در یک کلاس فرزند، ما می توانیم تعریف تابع ارث برده شده از کلاس پدر را تغییر دهیم.
در مثال زیر توابع getPrice و getTitle همپوشانی شده اند تا مقادیری را برگردانند.
1
2
3
4
5
6
7
8
9
10
|
function getPrice() {
echo $this–>price . “<br/>”;
return $this–>price;
}
function getTitle(){
echo $this–>title . “<br/>”;
return $this–>title;
}
|
تفاوت بین public،private و protected در کلاس ها چیست؟
این سه کلمه کلیدی جهت مشخص کردن سطح دسترسی اجزای یک کلاس به کار می روند. هنگامی که یک کلاس به همراه اجزای درونی مانند: متغیرها و توابع ایجاد می شود می توان به سه حالت به آنها دسترسی داشت:
عکس زیر از جلسه دوازدهم PHP ، به صورت خلاصه تفاوت بین public، private و protected را به ما نشان می دهد.
Public (عمومی)
در این نوع از دسترسی، متغیر یا تابع در کلاس های دیگر و نمونه های ایجاد شده از کلاس قابل دسترسی است. تا به این جا تمامی مثال هایمان با public بوده است. درصورتی که نیاز به محدود کردن دسترسی به اعضای کلاس را داشته باشیم، باید از private (خصوصی) و یا protected (محافظت شده) استفاده کنیم.
Private (خصوصی)
در این نوع از دسترسی، متغیر یا تابع فقط در کلاسی که در آن تعریف شده است قابل دسترسی است. و درکلاسی که به ارث برده می شود قابل دسترسی نیست. و همچنین در کلاسی خارج از کلاس تعریف شده هم قابل دسترسی نیست. یک عضو کلاس می تواند با استفاده از کلمه کلیدی private قبل از اسم عضو خصوصی شود.
ابتدا ساختار زیر از جلسه دوازدهم PHP را ملاحضه نمایید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class MyClass {
private $car = “skoda”;
$driver = “SRK”;
function __construct($par) {
// Statements here run every time
// an instance of the class
// is created.
}
function myPublicFunction() {
return(“I’m visible!”);
}
private function myPrivateFunction() {
return(“I’m not visible outside!”);
}
}
|
توجه داشته باشید در مثال بالا ، زمانی که کلاس MyClass توسط کلاس دیگری ارث بری شود، ()myPublicFunction و همچنین متغیر $driver قابل مشاهده هستند. اما کلاس ارث بری شده هیچ دسترسی ایی به ()myPrivateFunction و همچنین متغیر car$ نخواهند داشت. زیرا آن ها private هستند.
Protected (محافظت شده)
در این نوع از دسترسی، متغیر یا تابع، در کلاسی که در آن تعریف شده و کلاس هایی که از این کلاس ارث برده اند قابل دسترسی است. Property های protected شده، در خارج از این دو کلاس به هیچ عنوان در دسترس نمی باشند. یک عضو کلاس می تواند با استفاده از کلمه کلیدی protected قبل از نام آن prtotected شود.
با توجه به ساختار زیر از جلسه دوازدهم PHP نمونه ایی متفاوت از کلاس MyClass را میبینید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class MyClass {
protected $car = “skoda”;
$driver = “SRK”;
function __construct($par) {
// Statements here run every time
// an instance of the class
// is created.
}
function myPublicFunction() {
return(“I’m visible!”);
}
protected function myPrivateFunction() {
return(“I’m visible in child class!”);
}
}
|
تبریک میگم شما موفق شدید تا جلسه دوازدهم PHP را پشت سر بگذارید. مبحث شی گرایی تقریبا به اتمام رسیده است. اما چند نکته ی مهم در این مبحث باقی می ماند که همراهی شما را در جلسه بعد می طلبد. ? با ما همراه باشید.
?<< بزرگترین افسوس آدمی زمانیست که، می خواهد اما نمی تواند و یاد زمانی می افتد که می توانست اما نخواست. . . >>
دانلود کتاب آموزش برنامه نویسی php
در این جلسه:
با بیان چند نکته مبحث شی گرایی (oop) را به اتمام برسانیم. با ما همراه باشید.
ثابت ها (Constants)
یک ثابت به نوعی یک متغیر است، که می تواند مقداری را درون خود نگه دارد، ثابت ها را می توان شبیه به توابع دانست زیرا آن ها تغییر ناپذیر هستند. زمانی که ما یکبار آن را تعریف کنیم، آن ثابت تغییر نخواهد کرد. به مثال زیر توجه نمایید.
1
2
3
4
5
6
7
8
9
10
|
class MyClass {
const requiredMargin = 1.7;
function __construct($incomingValue) {
// Statements here run every time
// an instance of the class
// is created.
}
}
|
با توجه به مثال بالا از جلسه سیزدهم PHP در این کلاس، RequiredMargin یک ثابت است. که با کلمه کلیدی const اعلام می شود و تحت هیچ شرایطی آن را به هیچ چیز غیر از ۱٫۷ تغییر نمی دهد. توجه داشته باشید که نام ثابت، پیشوند $ مشابه آنچه در مورد متغیرها به کار می رود، را ندارد.
فيلد ها و متد هاي ايستا (static)
كلمه كليدي static در برنامه نويسي شی گرا اهميت بسيار زيادي دارد. ما می توانیم با استفاده از فیلد ها و متدهای ایستاتیک به صورت مستقیم و بدون ایجاد هرگونه شئ از کلاس مربوطه دسترسی پیدا کنیم. عناصر ايستا مشابه يك عضو سراسري براي كلاس عمل مي كنند و تمام اشياء ايجاد شده از آن كلاس مي توانند به آن ها دسترسي پيدا كنند. به علاوه فيلد هاي ايستا هميشه آخرين وضعيت (مقدار) خود را حفظ مي کنند.
به مثال زیر توجه نمایید.
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
class human{
static public $name;
static public function s(){
echo ‘welcome’.“<br>”;
self::$name=‘sajjad’;
echo self::name.“<br>”;
}
}
human::s();
echo human::$name;
?>
|
خروجی کد بالا از جلسه سیزدهم PHP :
Welcome
Sajjad
Sajjad
در مثال بالا در کلاس human یک فیلد و متد ایستا ایجاد شده است. در داخل متد های کلاس برای دسترسی به خاصیت ایستا باید از کلمه ::self استفاده کرد. اما در بیرون کلاس براي دسترسي به خاصيت هاي ايستا بايد اينگونه عمل كرد. ::نام كلاس .
::parent و ::Self
از Self:: برای دسترسی به خاصیت ها و متد های استاتیک و همچنین ثابت ها استفاده می کنیم. از ::parent برای دسترسی به اعضا کلاس والد استفاده می کنیم.
کلاس های abstract و interface در شی گرایی
کلاسهای abstruct در php، کلاسهایی هستند که نمیتوان از روی آن ها شی ایجاد کرد و تنها می توان از آن ها ارث بری کرد. این نوع از کلاس ها با کلمه کلیدی abstract اعلام می شوند. هنگام ارث بری از یک کلاس abstract همه متدهایی که در کلاس پدر با کلمه abstract نشان گذاری شده اند بایستی در کلاس فرزند تعریف شوند. بعلاوه این متدها باید قابلیت مشابه یکسانی نیز داشته باشند. به مثال زیر از جلسه سیزدهم PHP توجه نمایید.
1
2
3
4
5
|
abstract class MyAbstractClass {
abstract function myAbstractFunction() {
}
}
|
توجه داشته باشید که تعاریف تابع درون یک کلاس abstract نیز باید توسط کلمه کلیدی abstract پیش برود. قانونی بودن تعاریف تابع انتزاعی در یک کلاس غیر انتزاعی قانونی نیست. داشتن توابع abstract درون یک کلاس غیر abstract قانونی نیست.
رابط ها (Interfaces)
جهت اعلان یک interface از کلیدواژه ی interface استفاده می کنیم. برای اینکه یک کلاس بتواند از interface ارث بری کند، لازم است از کلیدواژه ی implement استفاده شود. دستور استفاده از آن را در زیر مشاهده می کنید.
1
2
3
4
5
6
7
|
interface interfaceName {
// abstract methods
}
class Child implements interfaceName {
// defines the interface methods and may have its own code
}
|
در مثال ، یک interface ساده برای کلاس هایی که کد مربوط به car را مدیریت می کنند، اعلان می کنیم. این interface تمامی کلاس های فرزند و مشتق شده از خود را مجبور به پیاده سازی متدهای انتزاعی ()setModel و ()getModel می نماید.
به مثال زیر از جلسه سیزدهم PHP توجه نمایید.
1
2
3
4
5
|
interface Car {
public function setModel($name);
public function getModel();
}
|
نکته : تمامي متدهايي كه در يك واسط تعريف مي شوند بايد به صورت public باشند. كلاس ها ممكن است بيش از يك واسط داشته باشند در اين صورت نام واسط ها را با كاراكتر كاما (,) از همديگر جدا ميكنيم.
با پایان این بحث شی گرایی در جلسه سیزدهم PHP به اتمام میرسد.
سعی کنید تا تمرین هایی را انجام دهید تا این مبحث به بهترین شکل ممکن در حافظه ی شما جای بگیرد.
<<فرق هدف با آرزو اینه که دقیقا میدونی کجا رو نشونی بری. . . >>
در این جلسه: نحوه اتصال پی اچ پی به پایگاه داده mysql را آموزش خواهیم داد. با ما همراه باشید.
در پایان این جلسه نحوه ی اتصال پی اچ پی به پایگاه داده mysql را آموزش خواهیم داد.
و البته که آشنایی مختصری با mysql را خواهیم داشت.
همچنین کار کردن در محیط phpmyadmin را تا حدودی فرا خواهید گرفت.
اما CRUD چیست؟ پس مطالبی در همین زمینه بررسی می شود.
با ما همراه باشید.
مقدمه آموزش صفر تا صد برنامه نویسی php
با اتصال به بانک های اطلاعاتی می توانیم به اطلاعات خودمان دسترسی داشته باشیم. این اطلاعات در جداولی ذخیره خواهند شد. همچنین ما نیز می توانیم به وسیله یک سری از عملیات و حتی دستوراتی، به این اطلاعات دسترسی داشته باشیم.
بانک های اطلاعاتی زیادی وجود دارند. oracle، mysql، Microsoft SQL Server، SQLite، Microsoft Access و . . . انواع آن نیز هستند. ما نیز در این بخش پایگاه داده mysql را مورد بررسی قرار خواهیم داد. زیرا که mysql محبوب ترین سیستم پایگاه داده مورد استفاده با PHP است.
MySQL چیست؟
همانطور که گفته شد، پایگاه داده ایی که در جلسه چهاردهم PHP بررسی خواهد شد، mysql خواهد بود. mysql یک سیستم پایگاه داده ای می باشد که از آن در web استفاده می شود. این سیستم تحت سرور می باشد و از آن جایی که برای تمامی برنامه های کوچک و و بزرگ بسیار کاربردی است، محبوبیت فراوانی نیز دارد. از دیگر خصوصیات آن می توان به سرعت بالا، امنیت، رایگان بودن، قابل اعتماد بودن و دسترستی آسان اشاره کرد.
تمامی داده ها در پایگاه داده mysql به صورت جداول ذخیره خواهند شد. جداولی که از ستون ها و ردیف هایی تشکیل شده اند. پایگاه داده ها در ذخیره اطلاعات بسیار حائز اهمیت هستند.
اتصال PHP و پایگاه داده MySQL
ساخت یک پایگاه داده به کمک xampp اصلا کار دشواری نیست. آموزش این بخش در مجله اینترنتی ماهتوتا موجود می باشد. ابتدا کلیک کنید و پایگاه داده خود را بسازید. سپس ادامه ی آموزش را دنبال کنید.
فقط این که با توجه به عکس زیر از جلسه چهاردهم PHP ، نوع بانک اطلاعاتی خود را به utf8_general_ci تغییر دهید.
پس از زدن دکمه ی create دیتابیس شما ساخته می شود.
مشاهده می کنید که پیامی مبنی بر این که جدولی در دیتابیس وجود ندارد به شما نمایش داده می شود.
بدانید و آگاه باشید که که ۴ عمل اصلی در ارتباط با بانک های داده وجود دارند. که به اختصار به آن ها CURD گویند. ای وِی!
عبارت C برای ساختن (Create)، عبارت U برای به روز رسانی (Update)،عبارت R برای خواندن (Read ) و D برای حذف (Delete) استفاده می شود.
انجام این ۴ عمل را به دو روش به شما آموزش خواهیم داد.
ابتدا در روش اول دسترسی به جداول از طریق خود phpmyadmin و سپس در روش دوم از طریق وارد کردن کد ها را بررسی می کنیم.
کار با پایگاه داده mysql از طریق محیط آن
با مثالی ساده در جلسه چهاردهم PHP ، کار خود را آغاز می کنیم. فرض می کنیم که ما نیاز به جدولی با ۵ ستون داریم. با توجه به عکس بالا در کادر name نام جدول خود را وارد کنید و در کادر number of columns عدد ۵ را وارد کنید و بر روی Go کلیک کنید.
در صفحه ی که برای شما باز می شود، تغییرات را مانند تصویر بالا انجام دهید.
نکته۱: گزینه اول را سعی کنید همان id قرار دهید. تیک شماره ۲ نیز AUTO_INCREMENT نام دارد که وقتی آن را می زنیم، به صورت خودکار برای هر سری از اطلاعات یک شناسه و یا همان ID در نظر میگیرد.
نکته۲: ستون type نوع داده را مشخص میکند. که id را int در نظر گرفتیم. تاریخ نیز date نام گذاری می شود. مابقی مقدار VARCHAR را میگیرند.
نکته۳: ستون Length/Values ماکسیمم اندازه ی مقادیر را مشخص میکند. در صورتی که مقداری برای آن ها اندازه گیری نشود، حجم زیادی اشغال خواهد شد.
در این بخش از جلسه چهاردهم PHP ، جدول اطلاعات ما تشکیل شد. اما هیچگونه اطلاعاتی در آن وجود ندارد.
انجام ۴ عمل اصلی پایگاه داده (CRUD) در محیط PhpMyAdmin
برای وارد کردن اطلاعات در جدول کافی است طبق عکس زیر ابتدا بر روی اسم جدول خودتان (در اینجا cars)، کلیک کنید. سپس Insert را بزنید.
در صفحه ایی که باز می شود، اطلاعات را تکمیل کنید. و بر روی Go کلیک کنید. توجه داشته باشید که نیازی به پر کردن قسمت id نیست. زیرا به صورت اتوماتیک پر می شود.
حال اگر بر روی سربرگ Browse کلیک کنید، دو ردیف از اطلاعات خود را خواهید دید. همچنین برای Delete کردن دیتابیس خود بر روی Structure کلیک کنید. و سپس دکمه Drop را بزنید. این کار باعث پاک شدن دیتابیس شما به همراه تمامی جداول خواهد شد.
تبریک میگم شما موفق شدید تا جلسه چهاردهم PHP را پشت سر بگذارید.
<<با خود عهد کن که از امروز تمام ثانیه هایت را به تبسم و لبخند پبوند بزنی. گشاده رویی می تواند سرآغاز یک روز خوب عالی باشد. خنده هایتان بخیر باد. . . . >>
کتاب آموزش php
در پایان این جلسه:
نحوه ی اتصال PHP به پایگاه داده MySQL از دو روش mysqli و PDO را آموزش خواهید دید.
همچنین مقایسه ایی ما بین این دو روش انجام خواهد گرفت.
با ما همراه باشید.
اتصال PHP به MySQL
در ورژن های پی اچ پی نسخه ۵ و ورژن های بعدی اتصال با پایگاه داده MySQL به راحتی رخ می دهد. ما می توانیم با یکی از دو روش زیر این اتصال را ممکن سازیم.
- mysqli extension ( حرف i مخفف improved می باشد.)
- (PDO (PHP Data Objects
نسخه های قدیمی تر PHP از MySQL extension برای اتصال به دیتابیس MySQL استفاده می کردند. اما این افزونه از سال ۲۰۱۲ به بعد، نارضایتی ها را بیشتر کرده است.
شما در حال آموزش و یادگیری جلسه پانزدهم PHP می باشید.
از کدام روش برای اتصال به پایگاه داده MySQL استفاده کنیم؟ (PDO یا MySQL)
اگر به دنبال پاسخی کوتاه برای آن هستید، باید بگوییم که هر طور مایل بودید. می توان از هر دو استفاده کنید.
هر دوی MySQL و PDO مزایایی دارند:
PDO در ۱۲ پایگاه داده مختلف کار می کند. در حالی که mysqli تنها با پایگاه داده های MySQL کار می کند.
بنابراین، اگر شما برای کاری، مجبور به تغییر دادن پایگاه داده خود هستید، PDO به شما کمک می کند.
در این حالت فقط کافی است تا رشته ارتباطی و تعدادی از query ها را نیز تغییر دهید. اما با mysqli، شما باید تمامی کدهایتان به همراه query ها را دوباره بازنویسی کنید. که امری دشوار می باشد.
از لحاظ امنیت می توان گفت که هر دوی این ها دستورات امن SQL را پیروی می کنند. که برای امنیت نرم افزار تحت وب بسیار ضروری می باشد. در تصویرزیر از جلسه پانزدهم PHP ، به طور خلاصه مقایسه ایی از هر دو خواهیم داشت.
مهم ترین مسئله این که در روش PDO دسترسی ما به ۱۲ دیتابیس ممکن خواهد بود.
روش اتصال به پایگاه داده (MySQL و PDO)
در این جلسه و در جلسات بعد ما سه روش برای کار با PHP و MySQL را نشان خواهیم داد:
روش MySQLi (شی گرایی):
روش MySQLi (به صورت رویه ایی (procedural) ):
روش PDO
بعد از اینکه xampp را فعال کردید می توانید از هر ۳ روش زیر برای اتصال به دیتابیس استفاده کنید.
مثال MySQLi (شی گرایی):
1
2
3
4
5
6
7
8
9
|
@$mysql = new mysqli(‘localhost’,‘root’,”,‘mahtuta’)
if(mysqli_connect_errno())
{
echo “خطا در سرور”;
//نمایش کد error
echo ‘<br>’.mysqli_connect_errno();
die;
}
echo “Connected successfully”;
|
مثال MySQLi (به صورت رویه ایی):
1
2
3
4
5
6
7
8
9
|
@$mysqli = mysqli_connect(‘localhost’,‘root’,”,‘databasetest’);
if(mysqli_connect_errno())
{
echo “خطا در سرور”;
//نمایش کد error
echo ‘<br>’.mysqli_connect_errno();
die;
}
echo “Connected successfully”;
|
مثال PDO:
1
2
3
4
5
6
7
8
9
10
11
12
|
try{
$pdo = new PDO(“mysql:host=localhost;dbname=mahtuta”,‘root’, ”);
echo “Connected successfully”;
}catch(PDOException $err)
{
echo “خطا در سرور”;
//نمایش کد error
echo ‘
‘.$err–>getMessage();
die;
}
|
به نکات زیر از جلسه پانزدهم PHP توجه کنید.
نکته۱: در صورتی که از هاست مجازی استفاده نمی کنید و سعی در برقرار کردن این اتصال در سایت خود را دارید، بایستی از username و password خود استفاده کنید.
نکته۲: اگر تمایل به دیده نشدن ارور ها دارید کافی است تا قبل از mysql یک @ وارد کنید. حال شما توانستید عمل ارور هندلینگ را پیاده سازی کنید. این در حالیست که ارور ها نمایش داده نمی شوند.
نکته۳: به کامنت ” نمایش کد error ” دقت کنید. خط بعدی این کامنت در هر ۳ کد بالا شماره ارور را نمایش می دهد. و وقتی که ما از @ هم استفاده میکنیم. کاربر تنها شماره ارور را می بیند.
بستن اتصال
هنگامی که اسکریپت به پایان می رسد، اتصال به طور خودکار بسته خواهد شد. اما برای بستن زودتر آن می توان از کدهای زیر استفاده کرد:
مثال MySQLi (شی گرایی):
1
|
$conn–>close();
|
مثال MySQLi (به صورت رویه ایی):
1
|
mysqli_close($conn);
|
مثال PDO:
1
|
$conn = null;
|
تبریک میگم شما موفق شدید تا جلسه پانزدهم PHP از مجله اینترنتی ماهتوتا را پشت سر بگذارید.
فکر تغییر یک شبه را از سرتان بیرون کنید!
آموزش برنامه نویسی php
تغییرِ یک شبه در داستان ها و فیلم ها جذاب است، در دنیای واقعی، تغییر، همیشه تدریجی است. . . . . >>
در پایان این جلسه:
نحوه ی ایجاد یک پایگاه داده MySQL با دو روش PDO و mysqli را آموزش خواهیم داد.
و البته که شما نیز در پایان، توانایی ایجاد جدول جدید در MySQL را نیز خواهیم داشت.
با ما همراه باشید.
ایجاد پایگاه داده MySQL با استفاده از MySQLi و PDO
از دستور CREATE DATABASE برای ایجاد یک پایگاه داده در MySQL استفاده می شود.
مثال زیر با روش ( شی گرایی ) mysqli یک دیتابیس به نام myDB را می سازد.
به مثال زیر از جلسه شانزدهم PHP توجه فرمایید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn–>connect_error) {
die(“Connection failed: “ . $conn–>connect_error);
}
// Create database
$sql = “CREATE DATABASE myDB”;
if ($conn–>query($sql) === TRUE) {
echo “Database created successfully”;
} else {
echo “Error creating database: “ . $conn–>error;
}
$conn–>close();
?>
|
مثال زیر از جلسه شانزدهم PHP با روش ( رویه ایی ) mysqli یک دیتابیس به نام myDB را می سازد.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die(“Connection failed: “ . mysqli_connect_error());
}
// Create database
$sql = “CREATE DATABASE myDB”;
if (mysqli_query($conn, $sql)) {
echo “Database created successfully”;
} else {
echo “Error creating database: “ . mysqli_error($conn);
}
mysqli_close($conn);
?>
|
مثال زیر از جلسه شانزدهم PHP با روش PDO یک دیتابیس به نام myDBPDO را می سازد.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
try {
$conn = new PDO(“mysql:host=$servername”, $username, $password);
// set the PDO error mode to exception
$conn–>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = “CREATE DATABASE myDBPDO”;
// use exec() because no results are returned
$conn–>exec($sql);
echo “Database created successfully<br>”;
}
catch(PDOException $e)
{
echo $sql . “<br>” . $e–>getMessage();
}
$conn = null;
?>
|
یکی از مهم ترین مزایای استفاده از روش PDO در ایجاد پایگاه داده MySQL این است که روش PDO دارای یک کلاس exception class خاص جهت مدیریت خطاهای احتمالی رخ داده در دستورات database query است. اگر یک خطا یا exception جدید در ساختار try{} رخ دهد، اجرای کدها کاملا متوقف خواهند شد و برای ادامه کار به بخش Catch{} می رود.
اما در ادامه جلسه شانزدهم PHP به دومین مبحث می پردازیم.
ایجاد جداول جدید در MySQL
جدول پایگاه داده (database table)، دارای نام منحصر به فرد می باشند و شامل ستون ها (columns) و ردیف ها (rows) هستند.
ایجاد یک جدول MySQL با استفاده از MySQLi و PDO
از عبارت CREAT TABLE برای ساختن جداول در MySQL استفاده میکنیم.
ما یک جدول با نام MyGuests ایجاد خواهیم کرد که دارای پنج ستون است: ‘id’، ‘firstname’، ‘lastname’،’email’ و ‘ reg_date :
به قطعه دستور زیر از جلسه شانزدهم PHP توجه نمایید.
1
2
3
4
5
6
7
8
|
CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)
|
نکاتی از قطعه کد بالا:
data type نوع داده ایی که هر ستون می تواند در خود نگه دارد، را مشخص می کند. برای این که با انواع مختلفی نوع داده آشنا شوید می توانید به سایت w3schools نیز سری بزنید. در این بخش از جلسه شانزدهم PHP بد نیست که حتما یه نگاهی بیاندازید.
بعد از data type شما می توانید برای هر ستون ویژگی های دیگری نیز تنظیم کنید:
NOT NULL – : این ویژگی بیان می کند که هر ردیف باید حتما شامل یک مقدار برای آن ستون باشد. که خالی رها کردن آن مجاز نیست.
DEFAULT value – : به این معنی که یک مقدار در صورتی که کاربر هیچگونه مقداری وارد نکند، به صورت پیشفرض قرار گیرد.
UNSIGNED – : این قسمت برای داده های عددی استفاده می شود، به این صورت که کابر باید تنها اعداد مثبت و صفر را وارد کند.
AUTO INCREMENT – : در این حالت مقدار آن بخش به ازای هر بار تکرار یک واحد افزایش پیدا میکند.
شما در حال آموزش و یادگیری جلسه شانزدهم PHP می باشید.
PRIMARY KEY -: وظیفه این بخش این است تا یک شناسه مناسب برای جدول تعیین کند. این شناسه ها هرگز تکراری نخاهند بود و برای هر جدول مقداری واحد تعیین می شود. اغلب این بخش به وسیله AUTO_INCREMENT تعیین و از آن به عنوان شماره ID استفاده می شود.
هر جدول باید یک ستون primary key داشته باشد. مقدار آن باید برای هر آیتم در جدول واحد و منحصر به فرد باشد.
به ۳ مثال زیر از جلسه شانزدهم PHP توجه کنید. در این مثال ها نحوه ایجاد جدول در کد های PHP بیان شده است.
مثال اول: به صورت MySQL (شی گرایی):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn–>connect_error) {
die(“Connection failed: “ . $conn–>connect_error);
}
// sql to create table
$sql = “CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)”;
if ($conn–>query($sql) === TRUE) {
echo “Table MyGuests created successfully”;
} else {
echo “Error creating table: “ . $conn–>error;
}
$conn–>close();
?>
|
مثال دوم از جلسه شانزدهم PHP : به صورت MySQL (رویه ایی):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die(“Connection failed: “ . mysqli_connect_error());
}
// sql to create table
$sql = “CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)”;
if (mysqli_query($conn, $sql)) {
echo “Table MyGuests created successfully”;
} else {
echo “Error creating table: “ . mysqli_error($conn);
}
mysqli_close($conn);
?>
|
مثال سوم از جلسه شانزدهم PHP : به صورت PDO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDBPDO”;
try {
$conn = new PDO(“mysql:host=$servername;dbname=$dbname”, $username, $password);
// set the PDO error mode to exception
$conn–>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to create table
$sql = “CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)”;
// use exec() because no results are returned
$conn–>exec($sql);
echo “Table MyGuests created successfully”;
}
catch(PDOException $e)
{
echo $sql . “<br>” . $e–>getMessage();
}
$conn = null;
?>
|
تبریک میگم شما موفق شدید تا جلسه شانزدهم PHP از مجله اینترنتی ماهتوتا را پشت سر بگذارید.
<<به راهی که اکثر مردم می روند بیشتر شک کن!
اغلبِ مردم تقلید می کنند.
انگشت نما بودن بهتر از احمق بودن است. . . . >>
آموزش طراحی سایت
در پایان این جلسه:
نحوه وارد کردن اطلاعات به صورت تکی و چند تایی را آموزش خواهید دید.
با ما همراه باشید با جلسه هفدهم PHP .
نحوه وارد کردن اطلاعات در MySQL با دو روش mysqli و PDO
بعد از ایجاد پایگاه داده و ساختن جدول، نوبت به وارد کردن اطلاعات در آن ها می شود.
لیست زیر برخی از مهمترین قوانینی که باید در هنگام وارد کردن اطلاعات رعایت شوند، آورده شده است.
_ query ها و یا همان کد های SQL باید درون PHP قرار بگیرند.
_ string ها (متن) در query باید حتما مابین ” ” نوشته شود.
_ مقادیر عددی نیازی به قرارگیری مابین کوتیشن ندارند.
_ عبارت NULL هم نیازی به قرارگیری مابین کوتیشن ندارد.
از عبارت INSERT INTO برای وارد کردن آیتم هایی جدید به جدول MySQL استفاده می شود.
به مثال زیر از جلسه هفدهم PHP توجه کنید.
1
2
3
|
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
|
برای استفاده از دستورات کامل SQL می توانید از سایت guru99.com استفاده کنید.
در جلسه شانزدهم PHP ما یک جدول به نام “MyGuests” با ۵ ستون با عناوین “id” ، “firstname” ، “lastname” ، “email” و “reg_data” ایجاد کردیم. حال قصد داریم تا اطلاعاتی درون این جدول وارد نماییم.
نکته: اگر برای یک ستون مانند id ویژگی AUTO_INCREMENT را فعال کنیم، و یا برای ستون reg_date برچسب TIMESTAMP را فعال کنیم، MySQL به صورت اتوماتیک مقداری را برای آن اختصاص خواهد داد.
به ۳ مثال زیر از جلسه هفدهم PHP توجه کنید. در این مثال ها نحوه اضافه کردن یک مقدار جدید به جدول “MyGuests” را شرح داده ایم.
آموزش طراحی وب سایت برنامه نویسی php
مثال اول: به صورت MySQL (شی گرایی):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn–>connect_error) {
die(“Connection failed: “ . $conn–>connect_error);
}
$sql = “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘John’, ‘Doe’, ‘[email protected]’)”;
if ($conn–>query($sql) === TRUE) {
echo “New record created successfully”;
} else {
echo “Error: “ . $sql . “<br>” . $conn–>error;
}
$conn–>close();
?>
|
مثال دوم: به صورت MySQL (رویه ایی):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die(“Connection failed: “ . mysqli_connect_error());
}
$sql = “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘John’, ‘Doe’, ‘[email protected]’)”;
if (mysqli_query($conn, $sql)) {
echo “New record created successfully”;
} else {
echo “Error: “ . $sql . “<br>” . mysqli_error($conn);
}
mysqli_close($conn);
?>
|
مثال سوم از جلسه هفدهم PHP : به صورت PDO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDBPDO”;
try {
$conn = new PDO(“mysql:host=$servername;dbname=$dbname”, $username, $password);
// set the PDO error mode to exception
$conn–>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘John’, ‘Doe’, ‘[email protected]’)”;
// use exec() because no results are returned
$conn–>exec($sql);
echo “New record created successfully”;
}
catch(PDOException $e)
{
echo $sql . “<br>” . $e–>getMessage();
}
$conn = null;
?>
|
وارد کردن چند رکورد به طور همزمان با دو روش mysqli و PDO
دستورات چندگانه SQL با تابع () mysqli_multi_query اجرا می شود.
به ۳ مثال زیر از جلسه هفدهم PHP توجه کنید. در این مثال ها نحوه اضافه کردن سه رکورد جدید به جدول “MyGuests” را شرح داده ایم.
مثال اول: به صورت MySQL (شی گرایی):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn–>connect_error) {
die(“Connection failed: “ . $conn–>connect_error);
}
$sql = “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘John’, ‘Doe’, ‘[email protected]’);”;
$sql .= “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘Mary’, ‘Moe’, ‘[email protected]’);”;
$sql .= “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘Julie’, ‘Dooley’, ‘[email protected]’)”;
if ($conn–>multi_query($sql) === TRUE) {
echo “New records created successfully”;
} else {
echo “Error: “ . $sql . “<br>” . $conn–>error;
}
$conn–>close();
?>
|
توجه داشته باشید که هر دستور SQL باید حتما با یک سمیکالون جدا شود.
مثال دوم : به صورت MySQL (رویه ایی):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die(“Connection failed: “ . mysqli_connect_error());
}
$sql = “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘John’, ‘Doe’, ‘[email protected]’);”;
$sql .= “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘Mary’, ‘Moe’, ‘[email protected]’);”;
$sql .= “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘Julie’, ‘Dooley’, ‘[email protected]’)”;
if (mysqli_multi_query($conn, $sql)) {
echo “New records created successfully”;
} else {
echo “Error: “ . $sql . “<br>” . mysqli_error($conn);
}
mysqli_close($conn);
?>
|
مثال سوم از جلسه هفدهم PHP : به صورت PDO
روش PDO برای این بخش کمی متفاوت است:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDBPDO”;
try {
$conn = new PDO(“mysql:host=$servername;dbname=$dbname”, $username, $password);
// set the PDO error mode to exception
$conn–>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// begin the transaction
$conn–>beginTransaction();
// our SQL statements
$conn–>exec(“INSERT INTO MyGuests (firstname, lastname, email)
$conn–>exec(“INSERT INTO MyGuests (firstname, lastname, email)
$conn–>exec(“INSERT INTO MyGuests (firstname, lastname, email)
// commit the transaction
$conn–>commit();
echo “New records created successfully”;
}
catch(PDOException $e)
{
// roll back the transaction if something failed
$conn–>rollback();
echo “Error: “ . $e–>getMessage();
}
$conn = null;
?>
|
تبریک میگم شما موفق شدید تا جلسه هفدهم PHP از مجله اینترنتی ماهتوتا را پشت سر بگذارید.
<<همه رویاهات به واقعیت تبدیل می شود اگر عزم و انگیزه دنبال کردنش را داشته باشی. . . . . >>
در پایان این جلسه:
دستورات آماده PHP در MySQL را بررسی خواهیم کرد.
و همچنین نحوه ی دریافت آخرین شناسه در پایگاه داده MySQL با زبان PHP را در جلسه هجدهم PHP آموزش خواهید دید. با ما همراه باشید.
دریافت آخرین شناسه در پایگاه داده MySQL
اگر ویژگی AUTO_INCREMENT را در یک فیلد فعال باشد و ما دستور INSERT و یا UPDATE را اجرا کنیم، می توانیم بلافاصله ID آخرین شناسه وارد شده را دریافت کنیم. در مثال زیر ستون “id” در جدول “MyGuests” ویژگی AUTO_INCREMENT را دارا است.
1
2
3
4
5
6
7
8
|
CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)
|
مثال های زیر همانند مثال های جلسه هفدهم PHP می باشد. که در جلسه قبل ذکر شد. تنها یک خط جدید برای یافتن ID آخرین شناسه وارد شده اضافی شده است. همچنین آخرین ID وارد شده را چاپ کردیم.
به ۳ مثال زیر از جلسه هجدهم PHP توجه کنید.
مثال اول: به صورت MySQL (شی گرایی):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn–>connect_error) {
die(“Connection failed: “ . $conn–>connect_error);
}
$sql = “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘John’, ‘Doe’, ‘[email protected]’)”;
if ($conn–>query($sql) === TRUE) {
$last_id = $conn–>insert_id;
echo “New record created successfully. Last inserted ID is: “ . $last_id;
} else {
echo “Error: “ . $sql . “<br>” . $conn–>error;
}
$conn–>close();
?>
|
مثال دوم از : به صورت MySQL (رویه ایی):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die(“Connection failed: “ . mysqli_connect_error());
}
$sql = “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘John’, ‘Doe’, ‘[email protected]’)”;
if (mysqli_query($conn, $sql)) {
$last_id = mysqli_insert_id($conn);
echo “New record created successfully. Last inserted ID is: “ . $last_id;
} else {
echo “Error: “ . $sql . “<br>” . mysqli_error($conn);
}
mysqli_close($conn);
?>
|
مثال سوم از جلسه هجدهم PHP : به صورت PDO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDBPDO”;
try {
$conn = new PDO(“mysql:host=$servername;dbname=$dbname”, $username, $password);
// set the PDO error mode to exception
$conn–>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = “INSERT INTO MyGuests (firstname, lastname, email)
VALUES (‘John’, ‘Doe’, ‘[email protected]’)”;
// use exec() because no results are returned
$conn–>exec($sql);
$last_id = $conn–>lastInsertId();
echo “New record created successfully. Last inserted ID is: “ . $last_id;
}
catch(PDOException $e)
{
echo $sql . “<br>” . $e–>getMessage();
}
$conn = null;
?>
|
دستورات آماده PHP در MySQL
دستورات آماده ای که بیان می کنیم بسیار پر کاربرد برای مقابله با SQL injection هستند.
معرفی دستورات آماده PHP و پارامتر های مرتبط با آن
یک دستور آماده یک ویژگی ست که در مقابل استفاده چندین بار دستورات شبیه به هم SQL با راندمان بالا استفاده می شود.
دستورات آماده شده SQL عمدتاً به این صورت انجام می شوند:
به ۳ مورد زیر از جلسه هجدهم PHP توجه نمایید.
_ آماده سازی: یک دستور SQL ایجاد شده و به پایگاه داده ارسال می شود. برخی مقادیر پارامتر هایی نامیده می شوند که به صورت نامشخص باقی می مانند. برای مثال:
آموزش رایگان طراحی وب سایت
1
|
INSERT INTO MyGuests VALUES(?, ?, ?)
|
- _ پایگاه داده دستور SQL را می خواند. و نتیجه را بدون اجرا آن ذخیره می کند. البته با استفاده از بهینه سازی query یا query optimization سریع ترین راه را برای اجرای آن مشخص می کند. اما به هر حال در آخر نتایج حاصل از query را بدون اجرای نهایی در حافظه نگهداری می کند.
- _ اجرا: در مرحله آخر، برنامه مقادیر را به پارامترها ارسال می کند حال پایگاه داده دستور SQL را اجرا می کند. برنامه می تواند یک دستور SQL را با value های متفاوت، به هرتعداد که بخواهد اجرا کند.
شما در حال آموزش و یادگیری جلسه هجدهم PHP می باشید.
در مقایسه با اجرای دستورات SQL به صورت مستقیم، دستورات آماده ۳ ویژگی به خصوص دارند که در ادامه جلسه هجدهم PHP به آن می پردازیم:
_ دستورات آماده، زمان پردازش کد ها را کاهش می دهند. زیرا آماده سازی query تنها یک بار انجام می شود. (هرچند دستور چند بار اجرا می شود).
_ پارامتر های متصل حجم ارسالی به سرور را بسیار کاهش می دهند. زیر در هر بار اجرا کد تنها نیاز به ارسال پارامتر ها است و نه تمام query.
_ همانطور که پیش تر گفته شد دستورات آماده بسیار پر کاربرد برای مقابله با SQL injection هستند. زیرا مقادیر پارامتر ها که با استفاده از یک پروتکل مختلف منتقل می شوند، از حملات SQL جلوگیری می کنند.
دستورات آماده SQL در mysqli
در مثال زیر از جلسه هجدهم PHP ، از دستورات آماده و پارامتر های متصل در mysqli استفاده می شود.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn–>connect_error) {
die(“Connection failed: “ . $conn–>connect_error);
}
// prepare and bind
$stmt = $conn–>prepare(“INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)”);
$stmt–>bind_param(“sss”, $firstname, $lastname, $email);
// set parameters and execute
$firstname = “John”;
$lastname = “Doe”;
$stmt–>execute();
$firstname = “Mary”;
$lastname = “Moe”;
$stmt–>execute();
$firstname = “Julie”;
$lastname = “Dooley”;
$stmt–>execute();
echo “New records created successfully”;
$stmt–>close();
$conn–>close();
?>
|
توضیح قسمتی از کد بالا از جلسه هجدهم PHP :
1
|
“INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)”
|
در دستور SQL ما یک علامت سوال را در جایی که می خواهیم یک string و double را جایگزین کنیم، قرار داده ایم. حال به کد تابع ()bind_parap نگاه کنید.
1
|
$stmt–>bind_param(“sss”, $firstname, $lastname, $email);
|
این تابع پارامتر ها را به کوئری SQL ارسال می کند. و البته نوع پارامتر ها را به دیتابیس می گوید. پارامتر “sss” نوع داده ها را لیست می کند. کاراکتر “s” نیز به دیتابیس متذکر می شود که با string سروکار دارد.
کاراکتر این پارامتر می تواند یکی از ۴ نوع زیر باشد:
به انواع آن از جلسه هجدهم PHP توجه نمایید.
_ i = integer
_ d = double
_ s = string
_ b = BLOB
هر پارامتر یکی از این ۴ نوع می باشد.
همچنین زمانی که نوع داده را حتما تعیین می کنیم، ریسک حملات SQL injection کاهش می یابد.
دستورات آماده SQL در PDO
در مثال زیر از جلسه هجدهم PHP ، از دستورات آماده و پارامتر های متصل در PDO استفاده می شود.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
4
42
43
44
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDBPDO”;
try {
$conn = new PDO(“mysql:host=$servername;dbname=$dbname”, $username, $password);
// set the PDO error mode to exception
$conn–>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// prepare sql and bind parameters
$stmt = $conn–>prepare(“INSERT INTO MyGuests (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)”);
$stmt–>bindParam(‘:firstname’, $firstname);
$stmt–>bindParam(‘:lastname’, $lastname);
$stmt–>bindParam(‘:email’, $email);
// insert a row
$firstname = “John”;
$lastname = “Doe”;
$stmt–>execute();
// insert another row
$firstname = “Mary”;
$lastname = “Moe”;
$stmt–>execute();
// insert another row
$firstname = “Julie”;
$lastname = “Dooley”;
$stmt–>execute();
echo “New records created successfully”;
}
catch(PDOException $e)
{
echo “Error: “ . $e–>getMessage();
}
$conn = null;
?>
|
تبریک میگم شما موفق شدید تا جلسه هجدهم PHP از مجله اینترنتی ماهتوتا را پشت سر بگذارید.
<<به خودت برای این همه راهی که اومدی افتخار کن و به خودت برای مسیری که باید بری ایمان داشته باش. . . . >>
آموزش برنامه نویسی php طراحی وب سایت
در پایان این جلسه:
آموزش استخراج داده ها از پایگاه داده MySQL و همچنین حذف اطلاعات از دیتابیس MySQL را فرا خواهید گرفت.
استخراج داده ها از پایگاه داده MySQL
از دستور SELECT برای انتخاب یک یا چند داده از روی جداول پایگاه داده استفاده می کنیم. به مثال زیر از جلسه نوزدهم PHP توجه فرمایید.
1
|
SELECT column_name(s) FROM table_name
|
همچنین می توانیم از کاراکتر * برای انتخاب تمامی ستون ها از یک جدول دیتابیس نیز استفاده کنیم.
1
|
SELECT * FROM table_name
|
اگر نیاز به یادگیری بیشتر SQL داشتید، می توانید سری آموزش های SQL ما را دنبال کنید.
استخراج داده ها با استفاده از mysqli
مثال زیر ستون های id ، firstname و lastname را از جدول MyGuests استخراج می کند و همچنین آن ها را در صفحه نمایش می دهد. به مثال زیر از جلسه نوزدهم PHP ، که با روش ( mysqli شی گرایی ) نوشته شده است توجه فرمایید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn–>connect_error) {
die(“Connection failed: “ . $conn–>connect_error);
}
$sql = “SELECT id, firstname, lastname FROM MyGuests”;
$result = $conn–>query($sql);
if ($result–>num_rows > 0) {
// output data of each row
while($row = $result–>fetch_assoc()) {
echo “id: “ . $row[“id”]. ” – Name: “ . $row[“firstname”]. ” “ . $row[“lastname”]. “<br>”;
}
} else {
echo “0 results”;
}
$conn–>close();
?>
|
به توضیح کد های بالا از جلسه نوزدهم PHP توجه فرمایید.
در ابتدا، ما یک کوئری SQL ایجاد میکنیم تا ستون های id ، firstname و lastname را از جدول MyGuests انتخاب کند. سپس در خط بعد کوئری اجرا می شود و نتایج داده ه درون یک متغیر به نام $result قرار می گیرند.
در مرحله بعد، تابع () num_rows بررسی می کند که آیا اطلاعات تعداد یک یا تعداد بیشتری سطر برگردانده شده است یا خیر، که اگر بیشتر از صفر ردیف وجود داشته باشد، تابع () fetch_assoc تمام نتایج را در یک آرایه رابطه ایی (associative array) انتقال می دهد. که ما می توانیم با استفاده از حلقه به آن دست پیدا کنیم.
حال حلقه ()while ، به اطلاعات درون آرایه دسترسی دارد و خروجی اطلاعات را که شامل ستون های id، firstname و lastname می باشد را، نشان می دهد.
شما در حال آموزش و یادگیری جلسه نوزدهم PHP می باشید.
به مثال زیر توجه فرمایید. در این مثال از روش mysqli رویه ایی استفاده شده است که تقریبا همانند مثال فوق می باشد.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die(“Connection failed: “ . mysqli_connect_error());
}
$sql = “SELECT id, firstname, lastname FROM MyGuests”;
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo “id: “ . $row[“id”]. ” – Name: “ . $row[“firstname”]. ” “ . $row[“lastname”]. “<br>”;
}
} else {
echo “0 results”;
}
mysqli_close($conn);
?>
|
نکته : همچنین می توانیم نتیجه نهایی را در یک جدول HTML قرار دهیم:
به قطعه کد زیر از توجه فرمایید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn–>connect_error) {
die(“Connection failed: “ . $conn–>connect_error);
}
$sql = “SELECT id, firstname, lastname FROM MyGuests”;
$result = $conn–>query($sql);
if ($result–>num_rows > 0) {
echo “<table><tr><th>ID</th><th>Name</th></tr>”;
// output data of each row
while($row = $result–>fetch_assoc()) {
echo “<tr><td>”.$row[“id”].“</td><td>”.$row[“firstname”].” “.$row[“lastname”].“</td></tr>”;
}
echo “</table>”;
} else {
echo “0 results”;
}
$conn–>close();
?>
|
استخراج اطلاعات با روش PDO ( + دستورات آماده )
ما در مثال زیر از دستورات آماده در PHP استفاده کرده ایم.
در مثال زیر ستون های id ، firstname ، و lastname را از جدول MyGuests می گیرد و آن را درون یک جدول HTML نمایش می دهد.
مثال PDO:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<?php
echo “<table style=’border: solid 1px black;’>”;
echo “<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>”;
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return “<td style=’width:150px;border:1px solid black;’>” . parent::current(). “</td>”;
}
function beginChildren() {
echo “<tr>”;
}
function endChildren() {
echo “</tr>” . “n”;
}
}
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDBPDO”;
try {
$conn = new PDO(“mysql:host=$servername;dbname=$dbname”, $username, $password);
$conn–>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn–>prepare(“SELECT id, firstname, lastname FROM MyGuests”);
$stmt–>execute();
// set the resulting array to associative
$result = $stmt–>setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt–>fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
echo “Error: “ . $e–>getMessage();
}
$conn = null;
echo “</table>”;
?>
|
حذف اطلاعات از دیتابیس MySQL
حذف اطلاعات از یک جدول MySQL با استفاده از mysqli و PDO
از عبارت DELETE برای حذف یک یا چندین رکورد در یک جدول استفاده می کنیم.
1
2
3
|
DELETE FROM table_name
WHERE some_column = some_value
|
توجه به عبارت WHERE در دستور DELETE : عبارت WHERE مشخص می کند که کدام رکورد و یا رکورد ها باید حذف یشوند. درصورتی که از دستور DELETE بدون عبارت WHERE استفاده کنیم، تمامی رکورد ها حذف خواهند شد. حال نگاهی به جدول MyGuests می اندازیم.
مثال های زیر رکورد با id=3 را از جدول ” MyGuests ” حذف می کند.
مثال اول از جلسه نوزدهم PHP : به صورت mysqli ( شی گرایی ):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn–>connect_error) {
die(“Connection failed: “ . $conn–>connect_error);
}
// sql to delete a record
$sql = “DELETE FROM MyGuests WHERE id=3”;
if ($conn–>query($sql) === TRUE) {
echo “Record deleted successfully” |