پیاده سازی CRUD در PHP (قسمت ۱)

پیاده سازی CRUD در PHP قسمت ۱  ( نمایش اطلاعات به صورت جدول در PHP )

سایر پست های مربوط به این آموزش :    

یکی از کارهای متداول برنامه نویسان وب ایجاد Grid برای پیاده سازی عملیات CRUD است    ( CRUD مخفف Delete , Update , Read ,Create ) است. این فرآیند در سیستم های مدیریت محتوا ، سیستم هایی که در آن فهرستی از داده ها مدیریت می شود و یا نرم افزار های حسابداری کاربرد دارد.در صورتیکه شما تازه شروع به برنامه نویسی وب کرده اید در آینده به احتمال زیاد به این نیاز پیدا خواهید کرد.

grid CRUD  این امکان را به کاربر می دهد که داده ها را ایجاد(Create) ،حذف (Delete) ، ویرایش (Update) ویا بخواند(Read). به طور معمول ما داده ها را در پایگاه داده MySQL ذخیره می کنیم . PHP یک زبان سمت سروری است که این امکان را به کاربران سایت می دهد که جدول های پایگاه داده MySQL را با استفاده از عملیات CRUD  تغییر دهند.

در این سری آموزشی به مراحل ساختن یک گرید CRUD در PHP خواهیم پرداخت  و نشان می دهیم که چگونه PHP که یک زبان سمت سروری است با پایگاه داده MySQL  ارتباط برقرار می کند و داده ها را در قالب HTML برای کاربران سایت ارسال می کند.

۱٫ایجاد پایگاه داده نمونه 

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

جدول زیر را به پایگا ه داده خود ایجاد کنید .

CREATE TABLE `customers` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 100 ) NOT NULL ,
`email` VARCHAR( 100 ) NOT NULL ,
`mobile` VARCHAR( 100 ) NOT NULL
) ENGINE = INNODB;

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

۲٫ ارتباط با پایگاه داده  برای نمایش اطلاعات به صورت جدول در php

یک فایل PHP با نام database.php ایجاد کنید و یک کلاس PHP با نام ِDatabase  در فایل تعریف کنید. در این برنامه کلاس Database وظیفه ارتباط و قطع ارتباط با پایگاه داده را برعهده دارد.

<?php
class Database 
{
	private static $dbName = 'crud_tutorial' ; 
	private static $dbHost = 'localhost' ;
	private static $dbUsername = 'root';
	private static $dbUserPassword = 'root';
	
	private static $cont  = null;
	
	public function __construct() {
		exit('Init function is not allowed');
	}
	
	public static function connect()
	{
	   // One connection through whole application
       if ( null == self::$cont )
       {      
        try 
        {
          self::$cont =  new PDO( "mysql:host=".self::$dbHost.";"."dbname=".self::$dbName, self::$dbUsername, self::$dbUserPassword);  
        }
        catch(PDOException $e) 
        {
          die($e->getMessage());  
        }
       } 
       return self::$cont;
	}
	
	public static function disconnect()
	{
		self::$cont = null;
	}
}
?>

همانطور که می بینید از PDO برای دسترسی به دیتابیس استفاده می کنیم .  استفاده از PDO مزایای زیادی  دارد که مهترین آن روشی یکسان برای دسترسی به چند دیتابیس فراهم می کند .

برای استفاده از این کلاس شما نیاز دارید این مقادیر را به درستی وارد کنید $dbName, $dbHost, $dbUsername, $dbUserPassword.
  • $dbName : نام دیتابیسی که جدول customers در آن قرار دارد.
  • $dbHost نام  هاست که معمولا localhost است
  • $dbUsername نام کاربری برای ارتباط به دتابیس
  • $dbUserPassword کلمه عبور کاربر برای اتصال به پایگاه داده.
خوب با هم نگاهی به توابع این کلاس می کنیم:
  • __construct(): سازنده کلاس Database است. از انجایی که کلاس به صورت استاتیک تعریف شده است مقدار دهی اولیه به کلاس مجاز نیست و برای جلوگیری کردن از استفاده نادرست از کلاس از تابع die  برای دادن پیغام به کاربر استفاده می کنیم.
  • connect:  تابع اصلی کلاس است و از الگوی singleton برای اطمینان از اینکه تنها یک PDO connection در کل برنامه وجود دارد استفاده می کند. به دلیل اینکه این متد استاتیک تعریف می شود ما از Database::connect() برای ایجاد کانکشن استفاده می کنیم.
  • disconnect : ارتباط با پایگاه داده را قطع می کند و مقدار کانشکن را برابر NULLقرار می دهد. ما از این تابغ برای بستن کانکشن ها استفاده می کنیم.

نمایش اطلاعات به صورت جدول در PHP

۳٫ ایجاد گرید با استفاده از Twitter Bootstrap

برای پیاده سازی عملیات CRUD ما نیاز به یک grid داریم بنابراین ابتدا یک grid می سازیم  و سپس صفحات مربوط به ایجاد (Create) ، خواندن (Read) , به روز رسانی (Update) و در نهایت حذف (Delete) را می سازیم. برای دانلود بوت استرپ از این لینک استفاده می کنیم دانلود بوت استرپ ورژنی که در این آموزش استفاده شده است 2.3.2 است . سپس یک فایل PHP با نام index.php بسازید. در صورتیکه مراحل به درستی انجام دهید باید ساختاری مشابه شکل زیر ایجاد شده باشد. php-crud-file-structure-1 حال فایل index.php را باز کرده و کدهای زیر را درآن کپی کنید.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <link   href="css/bootstrap.min.css" rel="stylesheet">
    <script src="js/bootstrap.min.js"></script>
</head>

<body>
    <div class="container">
    		<div class="row">
    			<h3>PHP CRUD Grid</h3>
    		</div>
			<div class="row">
				
				
				<table class="table table-striped table-bordered">
		              <thead>
		                <tr>
		                  <th>Name</th>
		                  <th>Email Address</th>
		                  <th>Mobile Number</th>
		                 
		                </tr>
		              </thead>
		              <tbody>
		              <?php 
					   include 'database.php';
					   $pdo = Database::connect();
					   $sql = 'SELECT * FROM customers ORDER BY id DESC';
	 				   foreach ($pdo->query($sql) as $row) {
						   		echo '<tr>';
							   	echo '<td>'. $row['name'] . '</td>';
							   	echo '<td>'. $row['email'] . '</td>';
							   	echo '<td>'. $row['mobile'] . '</td>';
							   	echo '</tr>';
					   }
					   Database::disconnect();
					  ?>
				      </tbody>
	            </table>
    	</div>
    </div> <!-- /container -->
  </body>
</html>
بررسی کدها :
  • در قسمت <head> فایل های CSS و JavaScript بوت استرپ  را به صفحه  include می کنیم.
  • خط های ۱۵ تا ۳۸ قسمت اصلی این فایل را تشکیل می دهند . در این بخش داده ها از دیتابیس بازیابی شده و در grid نمایش داده می شوند. حال نگاهی دقیق به این قسمت خواهیم داشت .
  • ما ابتدا یک جدول با هدری که بر اساس فیلد های جدول مشتریان در دیتابیس است ایجاد می کنیم. که شامل Name و Email Address و شماره همراه است.
<thead>
		                <tr>
		                  <th>Name</th>
		                  <th>Email Address</th>
		                  <th>Mobile Number</th>
		                 
		                </tr>
		              </thead>

سپس database.php را  include کرده و یک کانکشن PDO به دیتابیش ایجاد می کنیم و با استفاده از دستور SELECT داده ها را بازیابی می کنیم. در پایان با استفاده از یک حلقه همه محتویات را نمایش می دهیم . همچنین همانگونه که در ابتدا گفته شد حتما کانکشن باید بسته شود.

 <?php 
					   include 'database.php';
					   $pdo = Database::connect();
					   $sql = 'SELECT * FROM customers ORDER BY id DESC';
	 				   foreach ($pdo->query($sql) as $row) {
						   		echo '<tr>';
							   	echo '<td>'. $row['name'] . '</td>';
							   	echo '<td>'. $row['email'] . '</td>';
							   	echo '<td>'. $row['mobile'] . '</td>';
							   	echo '</tr>';
					   }
					   Database::disconnect();
					  ?>
در صورتیکه مراحل به درستی انجام شده باشد شما باید یک گرید خالی مانند شکل زیر بعد از فراخوانی صفحه index.php داشته باشید. نمایش اطلاعات به صورت جدول در php همانطور که می بینید گرید خالی است چون داده ای در داخل جدول مشتریان وجود ندارد برای امتحان به صورت دستی در جدول مشتریان داده ای وارد کنید تا در گرید نمایش داده شود. ۴٫ ادامه دارد  به دلیل طولانی شدن مقاله ادامه آن در پست بعدی خواهد بود که در آن نشان خواهیم داد که چگونه صفحات مربوط به ایجاد (Create)  ، خواندن (Read) مربوط به عملیات CRUD در PHP یا همان نمایش اطلاعات به صورت جدول در php را بسازیم. امیدارم این مقاله برای شما مفید باشد لطفا  این مقاله را در با استفاده از دکمه های پایین در صفحات اجتماعی  به اشتراک بگذارید . برای ادامه کار ما نیاز به حمایت شما داریم . در صورت هر گونه سوال و یا خطا  در مورد مقاله نمایش اطلاعات به صورت جدول در php می توانید  آن را در پایین ویا انجمن سایت مطرح کنید.    

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

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

درباره‌ی محمد آذرنیوا

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

همچنین ببینید

اشتباهات در شروع یادگیری کدنویسی

بزرگترین اشتباهات در شروع یادگیری کدنویسی  

اشتباهات در شروع یادگیری کدنویسی بسیار زیاد می باشند؛ به طوریکه برخی آسیب های جدی …

3 نظر

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

  2. با سلام و تشکر از زحمات شما قسمت دوم این آموزش موجود نیست و بجای آن قسمت اول به عنوان فسمت دوم اشتباها گذاشته شده است اگر ممکن تصحیح فرمایید

  3. سلام وقتتون بخیر قسمت دوم این اموزش را که میزنم همان قسمت اول را باز میکند میشه لینک قسمت دوم هم بزارید

دیدگاهتان را بنویسید

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