پیاده سازی 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 بسازید. در صورتیکه مراحل به درستی انجام دهید باید ساختاری مشابه شکل زیر ایجاد شده باشد. حال فایل 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 داشته باشید. همانطور که می بینید گرید خالی است چون داده ای در داخل جدول مشتریان وجود ندارد برای امتحان به صورت دستی در جدول مشتریان داده ای وارد کنید تا در گرید نمایش داده شود. ۴٫ ادامه دارد به دلیل طولانی شدن مقاله ادامه آن در پست بعدی خواهد بود که در آن نشان خواهیم داد که چگونه صفحات مربوط به ایجاد (Create) ، خواندن (Read) مربوط به عملیات CRUD در PHP یا همان نمایش اطلاعات به صورت جدول در php را بسازیم. امیدارم این مقاله برای شما مفید باشد لطفا این مقاله را در با استفاده از دکمه های پایین در صفحات اجتماعی به اشتراک بگذارید . برای ادامه کار ما نیاز به حمایت شما داریم . در صورت هر گونه سوال و یا خطا در مورد مقاله نمایش اطلاعات به صورت جدول در php می توانید آن را در پایین ویا انجمن سایت مطرح کنید.
من محمد آذرنیوا، نویسنده و مدرس دوره های برنامه نویسی ، طراحی وب و تحلیل گر پایگاه داده هستم و قصد دارم در این وبسایت مطالب کاربردی در این زمینه را با شما به اشتراک بگذارم …
سلام. من در سایتم نیاز به صفحه ای دارم که اطلاعات یک جدول در پایگاه داده رو نمایش بده و امکان ویرایش و حذف و درج اطلاعات از طریق این صفحه در پایگاه داده وجود داشته باشه.
این صفحه باید دسترسیش محدود باشه و فقط افرادی که نام کاربری و رمز عبور را دارن، دسترسی داشته باشند.
حالا سوال من این هست که چطور باید این کار رو انجام بدم. پایگاه داده رو از طرق هاست میتونم ایجاد کنم. اما برای ایجاد چنین صفحه ای و فراخوانی جدول چیکار باید بکنم؟ از طریق هاست باید این کار انجام بشه یا در پنل وردپرس ؟
لطفا راهنمایی بفرمایین
با سلام و تشکر از زحمات شما قسمت دوم این آموزش موجود نیست و بجای آن قسمت اول به عنوان فسمت دوم اشتباها گذاشته شده است اگر ممکن تصحیح فرمایید
سلام وقتتون بخیر قسمت دوم این اموزش را که میزنم همان قسمت اول را باز میکند میشه لینک قسمت دوم هم بزارید