در این مطلب می خواهیم در مورد نمایش داده های واکشی شده توسط PDO از پایگاه داده صحبت کنیم. برای این هدف داده هایی برگشتی کوئری را می خواهیم درون جدول نمایش دهیم. در واقع هدف این است که نشان دهیم چگونه می توانیم درون یک فایل با پسوند php. می توانیم کدهای پی اچ پی و اچ تی ام ال را ترکیب کنیم.هدف از ترکیب پی اچ پی و اچ تی ام ال، واکشی داده ها توسط پی اچ پی و نمایش آنها درون تگ های اچ تی ام است،به عبارت دیگر می خواهیم درون تگ های اچ تی ام ال، محتوای متغیرها و آرایه های پی اچ پی را نمایش دهیم. به طور کلی در ترکیب کدهای اچ تی ام ال و پی اچ پی، موارد زیر را باید بدانید:

۱ – ابتدا کدهای پی اچ پی را میان تگ های <? php?> بنویسید و سپس تگ های اچ تی ام ال را شروع کنید.

۲ – پسوند فایل باید php. باشد.

۳ – درون تگ های اچ تی ام ال هر جا که نیاز به ترکیب کدهای پی اچ پی باشد، باید مجدد کدهای پی اچ پی را توسط تگ های <? php?> بنویسیم. به عبارت دیگر در این حالت ابتدا کدهای پی اچ پی اجرا شده و سپس محتوای توسط اچ تی ام ال نشان داده می شوند.

اتصال به پایگاه داده و دریافت داده ها

پیش از هر چیز باید به پایگاه داده هدف وصل شده باشید تا بتوانید داده ها را واکشی کنید. در مطلب های پیشن در مورد اتصال و مفهوم رشته اتصال و DSN (یا Data Source Name) صحبت کرده ایمو آموزش دادیم تنظیم ها را درون یک فایل نوشته و سپس درون همان فایل یا فایل دیگری اتصال را برقرار و در نهایت درهر اسکریپتی که خواستید از پایگاه داده استفاده کنید می توانید فایل مورد نظر را توسط require_once ضمیمه کنید. اما در این مطلب و در کد زیر می خواهیم از یک تابع ساده برای ایجاد اتصال استفاده کنیم. ماهیت کدهای تابع ()getConnection چیز تازه ای نیست و تنها شی pdo$ که نمونه ای از کلاس PDO است را برگشت می دهد.

در کدهای زیر تابعی به نام ()getDeptEmp نوشته ایم که یک پارامتر با مقدار پیش فرض F از نوع رشته ای دریافت می کند که از مقدار پیش فرض این پارامتر یا مقداری که خود برنامه نویس در زمان فراخوانی تابع تعیین می کند، درون خط ۱۷به عنوان مقدار فرستاده شده برای شرط کوئری استفاده می شود. در واقع همان چیزی است که برای آماده سازی کوئری توسط متد ()PDO::prepare و استفاده از پارامتر نامگذاری شده توضیح داده ایم.

هدف از کد بالا این است که نام، نام خانوادگی و دپارتمان کاری کارمندانی را بدست آوریم که جنسیت (Gender) آنها توسط پارامتر gender$ تعیین می شود. در کد زیر در نهایت تابع ()getDeptEmp بدون مقدار فراخوانی شده است، زیرا می خواهیم از مقدار پیش فرض آن یعنی F (به معنی Female) استفاده کنیم. نتیجه اجرا درون متغیری به نام emps$ ذخیره می شود که در واقع به صورت آرایه انجمنی از سطرهای برگشتی متد ()PDOStatement::fetchaAll است.

ترکیب کدهای پی اچ پی درون کدهای اچ تی ام ال

برای این مطلب از جدول آموزش داده شده درون سایت w3school.com استفاده شده است. بخشی از کدهای اچ تی ام ال درون تگ html مربوط به کدهای سی اس اس (CSS) است که درشکل زیر مشخص شده اند. در شکل زیر می بینید که در هر کجایی در تگ های اچ تی ام ال که شما لازم دارید باید کدهای پی اچ پی را میان تگ های <? php?> قرار دهید. به طور مثال در شکل زیر می خواهیم تعداد عنصرهای درون آرایه emps$ را بدانیم، پس باید از تابع ()count استفاده کنیم.

در شکل بالا می بینید که از حلقه foreach استفاده شده تا بتوانیم تک تک داده های (سطرهای) آرایه emps$ را نمایش دهیم. اگر دقت کنید می بینید که ابتدا درون تگ <? php?> دستور foreach به صورت آنچه که در مطلب توضیح دادیم نوشته شده است ولی پس از آن به جای آکولاد باز }، کاراکتر : قرار گرفته است و سپس در انتها و مجدد درون تگ <? php?>، برای اعلان بسته شدن بدنه foreach، به جای آکولاد بسته {، از دستور ;endforeach استفاده شده است.

مقایسه با مدل MVC و نماها در لاراول

آنچه که در بالا آموزش دادیم تنها زمانی مفید بوده است، که مدل و مفهوم MVC وجود نداشته است ولی درحال حاظر پی اچ پی و فریم ورک های آن از مدل MVC پشتیبانی می کنند. کدهای بالا نیاز ما را بر طرف می کنند ولی به شدت خوانایی برنامه، تغییر و گسترش برنامه را سخت و کاهش می هد. بنابراین در ادامه خواهید دید که درون لاراول از ORM به نام Eloquent استفاده می کنیم تا بدون نوشتن کوئری های SQL داده ها را واکشی کرده و سپس آنها را به شکلی خواناتر توسط نماهای (Views) لاراول نمایش دهیم.

لاراول معماری MVC در لاراول ۵.۷

لاراول – نقش فایل نما و Blade

لاراول ایجاد قالب ها توسط Blade

لاراول عبارت های شرطی و تکرار در Blade