پی اچ پی php یکی از قویترین زبان های برنامه نویسی وب برای طراحی صفحات پویا هستش که معمولا روی وب سرور Apache اجرا میشه! php مخفف PHP: Hypertext Preprocessor هست و کدهای اون قابلیت قرارگرفتن در میان کدهای html رو دارند که این یک ویژگی مهم به حساب میاد. زبان php بسیار شبیه زبان های C,Java و Perl هست. هدف php ایجاد صفحات پویا توسط برنامه نویسان در سریع ترین زمان ممکن بیان شد. این زبان تعداد زیادی از پایگاه های داده مثل MySQL ، Oracle و SQL Server رو پشتیبانی میکنه اما اغلب توسعه دهندگان تریجح میدند که از MySQL به عنوان بانک اطلاعاتی صفحاتشون استفاده کنند ( MySQL یک پایگاه داده مناسب برای بیشتر سیستم های کوچک و بزرگ هست که امکان استفاده از اون به صورت رایگان وجود داره). امروزه وب سایت های زیادی رو میتونید ببینید که با php طراحی شده اند.
حالا چرا php؟؟؟
دلایل استفاده از php رو در زیر ببینید:
1. مفسر php روی سیستم های مختلفی قابل اجراست مثل Linux یا Windows
2. رویه بیشتر سرورها قابل اجراست مثل Apache و IIS
3. دانلود و استفاده ازش مجانی هستش.
4.به راحتی قابل یادگیریه.
همانطوری که تویه قسمت قبل گفتم برای شروع کار و نوشتن اولین برنامه ، باید Apache و php رویه سیستمتون نصب باشند و برای این کار استفاده از پکیج Xampp رو پیشنهاد کردم!
برای اینکه برنامه ها و سایت های php مون رو اجرا شوند باید اونها رو حتما تویه مسیر C:\xampp\htdocs\xampp ذخیره کنیم.
یعنی اول باید وارد پوشه محلی که xampp نصبه بشیم مثلا c:\xampp بعد باید پوشه htdocs و بعد هم پوشه xampp رو باز کنیم!
پیشنهادها
اول:
از این پوشه آخر یک میانبر رویه desktop بسازید تا بعد از این راحت تر
بتونیم پیداش کنیم! - یعنی یک میانبر به مسیر C:\xampp\htdocs\xampp
دوم: تویه این پوشه برای هر وب سایت یا برنامه ای که می نویسید یک پوشه Folder ایجاد کنید که مدیریت فایل هاتون هم راحت تر بشه!
هر برنامه یا وب سایتی که با php نوشته میشه معمولا از یک یا تعدادی فایل با پسوند php تشکیل میشه برای مثال اسمش میتونه به شکل safehAvval.php یا مثلا index.php و ...
نوشتن اولین برنامه
تویه مسیری که گفتم یه پوشه به اسم myWebSite ایجاد کنید و بعد از این
فایل ها و صفحاتی که برای تمرین یا مثال ها باهاشون کار میکنید رو تویه این
پوشه - که مطمئنم تویه این مسیر ساختید - ذخیره کنید. یعنی باید به شکل
روبرو باشه C:\xampp\htdocs\xampp\myWebSite
حالا تویه پوشه myWebSiteیک فایل به نام index.php ایجاد کنید!
چه جوری آخه!!؟؟
برنامه notepad++ یا notepad ویندوز رو اجرا کنید!
از منوی فایل گزینه New رو انتخاب کنید تا یه document جدید واستون بسازه
داخلش دستورات زیر رو بنویسید: شماره خط ها رو پاک کنیدها D:
1.<?php
2. echo 'Hello World! I will learn php as soon as possible...';
3.?>
بعد اون رو تویه مسیر C:\xampp\htdocs\xampp\myWebSite به نام index.php ذخیره کنید! حالا مرورگرتون رو اجرا کنید - سعی کنید از Firefox3 استفاده کنید - و آدرس localhost/xampp/myWebSite یا localhost/xampp/myWebSite/index.php رو تایپ کنید - یادتون نره که باید Apache و MySQL رو از کنترل پانل Xampp استارت Start کرده باشید - حالا اگر همه چیز رو دقیق انجام داده باشید باید تویه مرورگر Hello World! I will learn php as soon as possible... نمایش داده بشه!
توجه کنید که دستورات php باید بین <? و php?> قرار بگیرن البته میتونید به جایه php?> از ?> تنها هم استفاده کنید اما بهتر اینه که از شکل اول php?> استفاده کنید.
گفتی که کدهای php میتونن بین کدهای html قرار بگیرن! چه جوری؟
تویه مثال آخر میتونید ببینید که چطور این کار انجام میشه! حواستون حتما هستش که هر جا از دستورات php استفاده کردم اونها رو بین <? و php?> قرار دادم!
1.<html>
2. <head>
3. <title> <?php echo 'In Onvane Safeye Dovvome!!!'; ?> </title>
4. </head>
5. <body>
6. <?php echo 'Content of my <b><i>Second</i></b> Example...'; ?>
7. </body>
8.</html>
دستورات بالا رو می تونید تویه یک فایل دیگه مثلا به نام example2.php ذخیره کنید! تویه قسمت های بعدی بیشتر با کدنویسی به زبان php آشنا میشیم!
نگاهی دقیقتر به HelloWorld حالا که یک برنامهء جاوا را دیده اید (و احتمالا آنرا compile
و اجرا کرده اید)، ممکن است بخواهید بدانید که این برنامه چگونه کار میکند
و چه شباهتهایی به دیگر برنامه های جاوا دارد. توجه داشته باشید که Java application یک برنامهء standalone در جاوا است، به این معنی که applicationها برنامه هایی هستند که به زبان جاوا نوشته میشوند و برای اجرا شدن، نیازی به یک browser ندارند. توجه: اگر شما چیزهای بیشتری در مورد applicationهای جاوا میدانید، و یا اینکه با مفاهیم "شیء گرایی" (Object Oriented) آشنایی قبلی دارید، و کدهای جاوایی را که تا حالا دیده اید؛ فهمیده اید، میتوانید مستقیما به قسمت نوشتن Appletها بروید. این قسمت به تشریح "HelloWorld" application میپردازد که قبل از این دیده اید. کدهای آن به صورت زیر بود : /** * The HelloWorldApp class implements an application that * simply displays "Hello World!" to the standard output. */ class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); //Display the string. } } Commentها (توضیح ها) در کدهای جاوا "HelloWorld" application، دارای دو بلوک (block) از commentهاست. اولین بلوک، در بالای برنامه، از "حائل" های /** و */ استفاده کرده. بعد از آن در ادامهء یک خط از کدها، از یک comment دیگر با استفاده از // توضیح داده شده. زبان جاوا همچنین از دستهء سومی از commentها استفاده میکند که مشابه commentهای C هستند و با حائلهای /* و */ مشخص میشوند. Commentها در کدهای جاوا در آینده به توضیح این سه شکل مختلف میپردازد. تعریف کردن یک کلاس (class) در زبان برنامه نویسی جاوا، هر متد(=method = function = تابع ) و هر متغییر؛ در محدودهء یک class و یا یک object(= شیء، مثالیست از یک class) تعریف میشود. زبان برنامه نویسی جاوا از "توابع" و متغییرهای سرایری(global) پشتیبانی نمیکند. بنابراین اسکلت بندی یک برنامهء جاوا تشکیل شده از "تعریف یک class". تعریف کردن یک class؛ اطلاعات بیشتری در این ضمینه به شما میدهد. متد main نقطهء شروع هر برنامهء جاوا، متد main آن است. وقتی که یک application را بوسیلهء مفسر(interpreter) جاوا اجرا میکنید، اسم کلاسی را که میخواهید اجرا کنید؛ مشخص میکنید. Interpreter، اول از همه متد main واقع در آن class را صدا میزند. متد main؛ جریان واقع در برنامه را کنترل میکند، هر چیزی را که منابع نیاز دارند را معین میکند، و متدها را اجرا میکند. متد main؛ اطلاعات بیشتری در این ضمینه به شما میدهد. استفاده کردن از Classها و Objectها اجزاء دیگر یک Java application، objectها، classها، و متدها و دستوراتی هستند که شما برای پیاده سازی برنامهء خود از آنها استفاده میکنید. استفاده کردن از Classها و Objectها؛ این اجزاء را به شما معرفی میکند.
واژه کلیدی Order By :
عبارت ORDER BY رکورد های اطلاعاتی را بر اساس ستونی مشخص مرتب میکند
این
عبارت به طور پیش فرض اطلاعات را صعودی مرتب میکند، اگر شما تمایل دارید
اطلاعات خود را به طور نزولی مرتب کنید باید از عبارتDESC استفاده کنید .
دستور ORDER BY:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
ASC(ascending order) مرتب کردن به صورت صعودی و DESC(descending order) مرتب کردن به صورت نزولی میباشد.
مثال :
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
4 | Nilsen | Tom | Vingvn 23 | Stavanger |
فرض کنید میخواهیم از جدول بالا لیست تمام افراد را بیرون بکشیم در حالی که میخواهیم این اسامی بر اساس نامشان مرتب شده باشند.
از دستور زیر استفاده میکنیم:
SELECT * FROM Persons
ORDER BY LastName
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
4 | Nilsen | Tom | Vingvn 23 | Stavanger |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
حالا افراد را از جدول بالا خارج میکنیم به طوری که بر اساس نام خانوادگیشان و به صورت نزولی مرتب شده باشند.
برای این کار از دستور زیر استفاده میکنیم .
SELECT * FROM Persons
ORDER BY LastName DESC
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
4 | Nilsen | Tom | Vingvn 23 | Stavanger |
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
ارتباط دادن جداول
Query هایی که در فصل 3 بررسی گردید سطرهایش از یک جدول تکی ترسیم
گردیده است اما Query ها به ویژه می توانند مفید باشند برای ترکیب ستونهایی
از چندین جدول یا نما که Joining Tables نامیده می شود و آن در شرطهای
FROM یا WHERE از حالت SELECT انجام می گیرد. در این فصل ما بر روی ایجاد
ارتباطها با استفاده از شرط FROM که روشی توصیه شده است متمرکز خواهیم شد.
شناختن شرط FROM
همان طوری که ما دیده ایم، ساختار پایه ای از شرط FROM به آسانی نام از
یک جدول یا نما ساده را فراهم می سازد. اما برای دسترسی پیدا کردن به
توانایی از مدل ارتباطی، ما باید به بازیابی ستونها از جداول چندگانه و
نماها در یک Query خاص قادر باشیم. شرط FROM یک مکانیزمی برای انجام آن با
استفاده از ساختار دستور زیر:FROMON
اپراتور پیوند انواع پیوند برای به انجام رسیدن را تشریح می کند.
Server SQL پیوندهای داخلی و خارجی همه نوسانات را پشتیبانی می کند، همان
طوری که در بخش بعدی خواهیم دید. شرایط پیوند یک تعبیری می باشد شبیه به
ملاک که در شرط WHERE استفاده شده است. آن مشخص می کند که چگونه سطرها در
دو جدول ارتباط خواهند یافت. بیشتر پردازشگرهای ربطی روی پایه ای از
عبارتهای برابری مانند B ستون = A ستون به انجام می رسند. اما SQL Server
هر اپراتور منطقی را پشتیبانی کرده و شرایط پیوند می تواند به طور دلخواه
پیچیده باشد، با عبارات چندگانه پیوند یافته که از حرف ربط AND یا OR از
همان راهی که یک شرط WHERE می تواند ملاک انتخابی چندگانه را شامل باشد
استفاده کند. عبارت پیوند می تواند برای اضافه کردن جداول و نماهای اضافی
برای Query تکرار شود. ساختار دستور برای پیوند جداول چندگانه عبارت است
از: FROM
ON
یک حدود فرضی 256 جدولی برای هر Query وجود دارد، اما آن به حد زیاد
غیر محتمل است که شما اصلاً نیاز به 5 یا 6 نیاز ندارید و 2 یا 3 بیشتر
معمول می باشد. در حقیقت اگر شما نیاز به اتصال بیش از 10 جدول در یک Query
باشید، شما باید به دقت طرح پایگاه داده آن را نگاه کرده برای اینکه مطمئن
شوید که آن به طور صحیح به حالت عادی در آمده است.
ایجاد کردن پیوندها
پیوندها می توانند در Query Designer با استفاده هر کدام از قاب Grid
یا قاب SQL ایجاد گردند. قاب Grid اغلب آسانتر می باشد اگر شما جداولی که
رسماً در طرح پایگاه داده مربوط شده اند پیوند دهید، از موقعی که Query
Designer پیوندی بین آنها به طور خودکار ایجاد خواهد کرد. اما به طور معمول
قاب SQL با انعطاف پذیری بیشتر برای شما فراهم می گردد.
نامگذاری شئی ها
زمانی که شما با یک جدول یا نمای تکی کار می کنید آنجا می تواند هیچ
ابهامی در حدود منابع از یک ستون نداشته باشد از موقعی که همه نام ستونها
در یک جدول باید منحصر به فرد باشند. هنگامی که شما برای بار اول کار کردن
با چندین جدول در یک Query را شروع می کنید یا شما باید برای مشخص کردن نام
ستونها صریحاً مواظب باشید. مشخصات کامل برای هر شئی پایگاه داده چهار
معرفه را در بردارد. نام سرور، نام پایگاه داده، نام صاحب، نام شئی. معرفه
ها به وسیله پریودها جداسازی می گردند. بنابراین نام واجد شرایط از جدول
Oils در سیستم من Bunny.Aromatherary.dbo.Oil می باشد. مقداری از شئی ها
مانند نماها و جداول شامل شئی های دیگر می باشد. برای رجوع به یکی از این
شئی های گنجانده شده (در این حالت، ستونها). شما به آسانی نام آن را به نام
شئی ضمیمه می کنید. نام واجد شرایط کامل از ستون OilID از جدول Oils
(Bunny.Aromatherapy.dbo.Oils.Oil ID) می باشد. خوشبختانه شما فقط نیاز به
مشخص کردن کافی از درجه بندی ابهام اجتناب پذیر دارید.
در یک Query مبنی بر یک جدول تکی، برای مثال نام ستون به وسیله خودش
دارای مشخصات کافی می باشد. اگر یک Query به بیش از یک جدول مربوط گردد،
اگر چه جداول دارای ستونهایی با یک نام باشد. شما باید نام جدول را در نام
شئی (Object) Oils.OilID , OilPropertise.OilID که تمایز را به طور کامل
روشن می سازد لحاظ کنید.
پیوندهای داخلی
بیشترین فرمهای رایج پیوند یک پیوند داخلی می باشد. یک پیوند داخلی فقط
آن سطرهایی که شرایط پیوند TRUE را باز می گرداند باز خواهد گرداند.
پیوند دو جدول با استفاده از قاب دیاگرام
1- Query Designer جدول Oils را به وسیله کلیک راست کردن نام آن در قاب
Details باز کرده روی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می
کنیم.
2- قاب دیاگرام را به وسیله کلیک کردن دکمه قاب دیاگرام روی نوار ابزار Query Designer نشان می دهیم.
3- دکمه Add Table را روی نوار ابزار Query Designer کلیک می کنیم. Query Designer کادر محاوره ای Add Table را نشان می دهد.
4- جدول PlantTypes را در لیست جدول انتخاب کرده و Add را کلیک می کنیم. SQL Server جدول را به Query اضافه می کند.
5- Close را برای بستن کادر محاوره ای Add Table کلیک می کنیم.
6- دکمه قاب SQL را در نوار ابزار Query Designer کلیک می کنیم. Query Designer قاب SQL را نشان می دهد.
7- علامت * را بعد از کلید واژه SELECT حذف می کنیم.
8- دکمه قاب SQL را در نوار ابزار Query Designer کلیک می کنیم. (OK را
کلیک کرده اگر Query Designer یک متن خطا درباره ساختار دستور SELECT نشان
دهد). Query Designer قاب SQL را پنهان می سازد.
مهم: زمانی که شما Query Designer را باز می کنید، حالت SQL معمولاً *
را انتخاب می کند. انتخاب کردن ستونهای مشخص در قاب دیاگرام سبب می شود که
آنها به لیست ستون اضافه شوند. مایکروسافت آن را به صورت یک خصیصه در نظر
می گیرد.
9- در قاب دیاگرام ستونهای OilID و OilName را در جدول Oils و ستون PlantType را در جدول PlantType انتخاب می کنیم.
10- دکمه Run روی نوار ابزار Query Designer برای اجرای Query کلیک می
کنیم. Query Designer مقادیر Planttype را برای هر Oil نشان می دهد.
ارتباط دو جدول به وسیله قاب SQL
1- قاب دیاگرام را پنهان کرده و قاب SQL را به وسیله کلیک کردن دکمه ها روی نوار ابزار Query Designer نشان می دهیم.
2- حالت SQL موجود را با عبارت زیر جایگزین می کنیم.
SELECT Oils.OilID,Oils.Oil Name,PlantParts.PlantPart
FROM OilsINNER Join
PlantParts ON Oils.PlantPartID=PlantParts.PlantPart ID
SELECT Oils.Oil ID.Oils.Oil Name.odors.odor
FROM Oils
INNER Join Oilodors on Oils.OilID=Oil odors.OilID
INNER Join odors on Oilodors.odor ID=odors.odorID
SELECT Oils.Oil Name.Plant Parts.Plant Part
FROM Oils Left Outer Join
Plant Parts on Oils.Plant Part ID=Plant Parts.Plant Part ID
SELECT Oils.Oil Name.Properties.Property
FROM Oils
Right OUTER JOIN Oil Properties on
Oils.Oil ID=Oil Properties.Oil ID
INNER JOIN Properties on
Oil Properties.Property ID=Properties.Property ID
SELECT FROM
UNION [All]
SELECT FROM
[ORDER BY ]
SELECT Property Table AS Table Name.Property ID AS ID
Property AS Quality From Properties
UNION
SELECT odor Table.odor ID odor From odors
ORDER BY Quality