دریافت خروجی CSV با PHP از دیتابیس

  • آپدیت شده در تاریخ

دریافت خروجی CSV با PHP از دیتابیس

در این آموزش php قصد داریم به شما نحوه دریافت خروجی (export) از دیتابیس Mysql را در فایل CSV نشان بدیم. قبلا آموزش نحوه خواندن فایل CSV در PHP را دیدیم.

بعد از اتصال به دیتابیس, نیاز است که رکوردهای جدول mysql را واکشی (fetch) کنیم. این نتایج دیتابیس باید در فرمت رشته ای CSV به همراه جداکننده های مناسب باشند.

و بعد, نیاز داریم این فایل CSV را با ارسال هدر به مرورگر دانلود کنیم.

مثال: دریافت خروجی CSV با PHP از دیتابیس

در این مثال, ما یک جدول MySQL به نام toy داریم. که نام فیلدهای جدول را خوانده و آن ها را به بخش هدینگ فایل CSV اضافه می کنیم.

سپس در یک حلقه تکرار سطرهای جدول را خوانده و داخل یک رشته با فرمت صحیح CSV قرار می دهیم.

بعد از آن برای ارسال فایل به منظور دانلود, هدر Content-Type, Disposition و همچنین نام فایل با پسوند .csv برای ذخیره رشته ایجاد شده, ست و به مرورگر برای دانلود ارسال می کنیم.

اول بلاک <?php را مشخص کردیم تا نوع زبان کدهای اسکریپتی ما مشخص شود.

در خط بعد با تابع mysqli_connect به دیتابیس با اطلاعاتی که به عنوان آرگومان تعیین شده است متصل می شویم. (آموزش اتصال به دیتابیس با MySQLi)

بعد یک کویری SELECT برای دریافت تمام سطرهای جدول toy نوشتیم و با تابع mysqli_query آنرا اجرا کردیم.

سپس تعداد ستون های سطر بازگشتی را دریافت و در یک حلقه for به منظور دریافت نام ستون ها و قرار دادن آن به عنوان هدر فایل CSV استفاده کردیم.

در مرحله بعد از تابع mysqli_fetch_row برای دریافت مقادیر داخل سطرها بهره بردیم.

بعد اینکه رشته های ما برای دریافت خروجی CSV ساخته شد, هدرهای دانلود فایل به همراه نام فایل فرضی را تعیین و رشته های را چاپ می کنیم. (دانلود فایل با PHP)

نکته: توجه کنید که قبل از چاپ رشته های ایجاد شده (خط۲۶ ) نباید هیچ کاراکتری چاپ یا در هدر ارسال شده باشد چرا که احتمال corrupt یا خراب شدن فایل خروجی وجود دارد و با خطای header already sent.. مواجه می شود (انواع خطاها در php)

برای رفع این مشکل هم می توانید تمام خروجی بافر را قبل از چاپ کردن با تابع ob_end_clean() حذف کنید. (آموزش output buffering در PHP)

 

امیدوارم از آموزش دریافت خروجی CSV با PHP از دیتابیس MySQL نهایت استفاده را برده باشید.

برای دانلود سورس کد و دیتابیس از باکس دانلود زیر استفاده کنید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۲)

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

  1. پیام ۲ تیر ۱۳۹۹

    خطای سیتنکس دارید و اینکه خروجی با فارسی سازگار نیست

    پاسخ
    1. حسن شفیعی ۲ تیر ۱۳۹۹

      سلام. خطای سینتکسی وجود ندارد چرا که شما برای کپی کدها باید روی کد دابل کلیک کنید کنید تا وارد محیط سفید رنگ بشید و کپی کنید و در این حالت نمایشی ۰ در حلقه نمایش و قابل کپی نیست.
      charset یا کانکشن اتصال به دیتابیس را باید روی utf8 بزارید تا مشکل خروجی شما حل بشه و ارتباطی که کد تبدیل به csv ندارد.
      موفق باشید.

      پاسخ
دوره های آموزشی