آموزش زبان برنامه نویسی php - کار با بانک اطلاعاتی

iReza

کاربر عضو
سلام و درود فراوان.

حالتون چطوره ؟ قربونتون منم خوبم جاجریم :دی

اینم تاپیک دوم آموزش پی اچ پی.



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

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

MySql چیه ؟ یک بانک اطلاعاتی ! یک بایگانی ! که هر موقع بخواید میتونید ازش برداشت کنید یا بهش اضاف کنید که تحت به طور کاملا رایگان به اشتراک گذاشته شده.

شیوه ی اتصال به بانک اطلاعاتی *که زین به بعد ما اون رو دیتابیس نام میبریم ( اسم اصلیش همینه :| )خوب شیوه فراخوندن دیتابیس در PHP،به شکل زیر صورت میگیره:


کد:
mysql_connect(servername,username,password);
که باید جای مقادیر servername,username,password،به ترتیب نام سرور و نام کاربری سرور و کلمه عبور رو وارد کنید تا به شکل صحیح به دیتابیس وصل شه.حالا اگر ما بخویم کاری کنیم که اگر وصل نشده باشه،یک ارور بده،به شکل زیر عمل میکنیم،اول اتصال رو از حالت ایستا در میاریم و با گذاشتنش درون یک متغیر اون رو داینامیک میکنیم سپس با استفاده از چرخه IF (که در بش اشاره شد) شرطی میسازیم :


کد:
<?php
$connection = mysql_connect("localhost","peter","abc123");
if (!$connection)
  {
  die('Could not connect: ' . mysql_error());
  }
?>
تابع mysql_error،شامل خطا هست که موجب شده به دیتابیس وصل نشیم.

کلاس های بسیار زیادی هم برای راحتی اتصال عرضه شده که میتونید دانلود کنید.

نکته : خیلی در این مرحله دقت کنید،بسیاری از اشتباهات ممکنه همینجا رخ بده.

 

kasraa

کاربر عضو
سلام

ببین Z.3.R.0 اسمت رو نمیدونم شرمنده پست میدم

بهتر نیست تو همون تاپیک php این رو آموزش بدی ؟

چون اینطوری تاپیک ها جدا میشن و کاربر ممکنه برای پیدا کردنش یه کم گیج بشه

اگر تو همون تاپیک ادامه بدی بهتره و همشون تو یه جا میشه و پخش نمیشه

ممنون :53:

 

iReza

کاربر عضو
نه کسری جان فکنم همینطوری بهتره.

ممنون از پیشنهادت..

 

EhsaanDev

کاربر عضو
کاش توضیحات بیشتری راجع به نصب mysql میدادید. من پیشنهاد میکنم نرم افزار XAMPP رو دانلود کنن و از همون استفاده کنن.

 

iReza

کاربر عضو
سلام،سوالی بپرسن مین جواب میدم،نقطه کوری توی پست اول نیست،اگر باشه،جواب میدم.

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

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

ممنون

 

iReza

کاربر عضو
تشکیل یک بانک اطلاعاتی

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


کد:
CREATE DATABASE database_name
و برای ساخت یک بانک اطلاعاتی در PHP چیطوری باید عمل کنیم؟یعنی فقط کُد بالا رو بزنیم؟نه!شما باید به شکل زیر عمل کنید:


کد:
mysql_query("CREATE DATABASE database_name",$connection)
خوب database_name که معلومه،نام بانک اطلاعاتی رو مشخص میکنه،اما connection$،این نام متغیری هست که شما به وسیله اون به SQL وصل شدید.

پس شما میتونید به شکل زیر،یک بانک اطلاعاتی بسازید:


کد:
<?php
$connection = mysql_connect("localhost","username","password");
mysql_query("CREATE DATABASE my_db",$connection)
?>
این ساده ترین شیوه ممکن برای ساخت دیتابیس در PHP بود،اما شیوه غیرساده (زیاد هم حرفه ای نیست :دی)


کد:
<?php
$connection = mysql_connect("localhost","username","password");
if (!$connection)
  {
  die('Could not connect: ' . mysql_error());
  }

if (mysql_query("CREATE DATABASE my_db",$connection))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
?>

چگونه یک بایگانی (Table) در بانک اطلاعاتی بسازیم؟بایگانی،شامل مشخصات میشه که دارای فیلدهایی به سلیقه ی مدیریت بانک اطلاعاتیه

شکل کلی ساخت Table در MYSQL:


کد:
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
)
data_type نوع داده های پرونده رو مدیریت میکنه،مثلا TEXT شامل متن میشه،یا INT شامل اعداد،تعداد زیادی از انواع داده وجود داره که در آدرس زیر میتونید مشاهده کنید:



اما ما اگه بخوایم در PHP همچین چیزی ایجاد کنیم،چطوری باید اقدام کنیم؟


کد:
mysql_select_db($database, $connection);
$sql = "CREATE TABLE Persons
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
درباره ی mysql_select_db در جلسات بعد مفصل توضیح خواهم داد

در کد بالا،با TABLE با اسم Presons ایجاد کردیم.

که از 3 فیلد به نام FirstName,LastName,Age که بترتیب از نوع Varchar,Varchar,Int هستن.

درون پرانتز،مقدار رشته ها رو مشخص میکنیم که مثلا FirstName,LastName میتوانند دارای 15 رشته باشند

 

iReza

کاربر عضو
وارد کردن اطلاعات به دیتابس

دستور وارد کردن دیتابیس به TABLEها و قرارگیری درست اونها در فیلدها،به طور کلی ساختار زیر رو داره:


کد:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
در قسمت table_name که اسم تیبل رو باید قرار بدید،اما columnها!یا همون فیلد به زبان خودمون،شما اون ها رو به ترتیب قرار میدید،بعدش در قسمت VALUES که شامل value1, value2, value3,.. باید مقدارشون رو مشخص کنید،دقت کنید این عملیات به ترتیب انجام مشه و اگر column1 برابر Name باشد،مقدار value1 درون این فیلد قرار میگیره.اما برای استفاده از اون ها در PHP باید چطور عمل کنیم ؟


کد:
<?php
$connection = mysql_connect("localhost","username","password");
if (!$connection)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("my_db", $connection);

mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin',35)");
?>
در کد بالا،شما پس از وصل شدن به دیتابیس و انتخاب اون،شروع به وارد کردن اطلاعات میکنید:


کد:
FirstName: Peter
LastName: Griffin
Age: 35

وارد کردن اطلاعات از یک فرمدر جلسه قبل به توضیح پرداختیم

برای اینکه شما با وارد کردن یکسری اطلاعات در یک فرم،اون ها رو در بانک اطلاعاتی قرار بدید باید به شکل زیر عمل کنید،اول باید درون فایل INDEX.PHP این کد رو قرار بدید:


کد:
<html>
<body>

<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>

</body>
</html>
همونطور که میدونید،مقدار Name هر فرم یک جور رابط با زبان PHP هست،پس ما باید با استفاده از متُد ها،اون ها رو فراخونی کنیم.پس توی صفحه ی insert.php این کدها رو قرار میدیم:


کد:
<?php
$connection = mysql_connect("localhost","peter","abc123");
if (!$connection)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $connection);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

if (!mysql_query($sql,$connection))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";
?>
خیلی ساده!شما فقط در VALUEها،متُدها و نام فرم ها رو قرار دادید،البته باید به ترتیب فیلدها باشه.

حذف داده هابرای حذف داده ها در دیتابیس میتونید از این دستور استفاده کنید:


کد:
DELETE FROM table_name
WHERE some_column = some_value
دیتابیس برای حذف،به یک مدرک نیاز داره تا بدونه داره چیرو حذف میکنه،وگرنه قیافش اینطوری میشه :|

ما برای این از WHERE اسفتاده میکنیم،مثلا میگیم داده ای که ID اون برابر 3 هست باید پاک بشه،پس ! کد به این صورت میشه:


کد:
DELETE FROM ps_base
WHERE id = 3

بروز کردن داده هابرای اینکار،ما باید از SET استفاده کنیم،مثل کد زیر:


کد:
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
WHERE رو هم که توضیح دادیم.

 
آخرین ویرایش توسط مدیر:

iReza

کاربر عضو
انتخاب داده ها

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

دستور کلی این عمل:


کد:
SELECT column_name(s)
FROM table_name
برای استفاده از این دستور در PHP از این کد استفاده میکنیم:


کد:
<?php
$connection) = mysql_connect("localhost","peter","abc123");
if (!$connection))
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $connection);

$result = mysql_query("SELECT * FROM Persons");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }
?>
ما در کد بالا،داده ها در تیبل Persins رو دریافت میکنیم و در یک قسمت از صفحه به نمایش میگذاریمشون.

حالا میخوایم اونا رو در یک جدول قرار بدیم


کد:
<?php
$connection = mysql_connect("localhost","peter","abc123");
if (!$connection)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $connection);

$result = mysql_query("SELECT * FROM Persons");

echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

?>
mysql_fetch_array()

این تابع در MySql به شما کمک میکنه تا داده های یک Table رو به نمایش بگذارید.

مقداری که درون پرانتز قرار میگیره،باید شیء داینامیک اطلاعات وصل شدن به دیتابیس باشه.

وقتی این دستور در چرخه while قرار بگره،تمام داده ها طبق دستورات while به نمایش درمیان

ترتیب دادن به داده های فراخوانده شده
برای ترتیب دادن به داده های قراخوانی شده،ما باید از ORDER BY استفاده کنیم،بیشتر مواقع مقدار ORDER BY روی ID که روی AUTO INCERMENT تنظیم شده قرار میگیره،البته با DESC،تا آخرین داده ها رو نمایش بده.برای این کار،کد کلی SQL به شکل زیر هست:


کد:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
شما میتونید یکی از مقدارهای DESC یا ASC رو قرار بدید تا متوجه تفاوقتشون بشید.

برای استفاده از این امکان فقط کافیه اون رو در تابع mysql_query قرار بدید.

محدود کردن تعداد داده های فراخوانده شده
تا حالا دیدید توی سایت بلاگفا توی تنظیماتش یه آپشن هست نوشته "میزان پست ها در صفحه اول" ؟ خوب این دقیقا کارش همونه (البته شاید روش اون فرق داشته باشه :دی مثال بود فقط)دستور کلی SQL این امکان به کلی به این شکل هست:


کد:
SELECT * FROM comments ORDER BY id DESC LIMIT 5
الان فقط 5 داده فراخونده میشه،اما اگه بخواین از داده 5 شروع به محدود کردن داده ها کنید،میتونید از این کد استفاده کنید:


کد:
SELECT * FROM comments ORDER BY id DESC LIMIT 5,20
در کد بالا هم،ما میگیم از داده 5 شروع کن و این رو تا داده 20 محدود کن.

 
آخرین ویرایش توسط مدیر:

iReza

کاربر عضو
دوستان 2تا از اصلی ترین پست ها بروز شد!

بتون پیشنهاد میکنم،برای هر داده یک id در بانک اطلاعاتی بزارید تا برای استفاده از where به مشکل برنخوریم.

این قسمت آموزش هم به پایان رسید.


 

Levinbook

تازه وارد
آقای z 3 r 0 خیلی باحالی. هم اموزش هات خیلی توووپه هم شوخی آیی که وسط آموزش ها میکنی با حاله.... به قول خودت " جاجریم " :دی

 
بالا