راکت

ایجاد فایل اکسل از دیتابیس

4 پاسخ

با سلام.
من یک کدی میخوام بنویسم که وقتی کاربر روی دکمه ایجاد فایل اکسل کلیک میکنه از لیست کاربرانی که ثبت نام کرده اند و اطلاعات در دیتابیس ذخیره شده یک فایل اکسل تهیه کنه.اما وقتی از کدی استفاده میکنم تو خروجی یعنی فایل اکسل کدهای html هم دیده میشه این دلیلش چی میتونه باشه؟

ثبت پرسش جدید

پاسخ‌ها

4
m.mahmoudi
m.mahmoudi
@m.mahmoudi7276

این کدی هست که من تا الان نوشتم قسمت
html:

<form action="/search.php" method="post" novalidate>
        <button type="submit" name="excel" class="btn btn-outline-primary">ایجاد فایل اکسل</button>
</form>

php:

$db = new PDO("mysql:host=localhost;dbname=pasak", "root", "");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$select_stmt = $db->prepare("SELECT * FROM search  ");
$select_stmt->execute();

if(isset ($_POST['excel'])){
    if ($select_stmt) {
        $delimiter = ";";
        $filename = "users_" . date('Y-m-d') . ".csv";
        header('Content-Encoding: UTF-8');
        header('Content-type: application/csv; charset=UTF-8');
        header('Content-Disposition: attachment; filename=' . $filename);
        $f = fopen('php://output', 'w');
        fputs($f, "\xEF\xBB\xBF"); // UTF-8 BOM !!!!!
        $fields = ['شناسه', 'نام', 'نام خانوادگی', 'سن'];
        fputcsv($f, $fields, $delimiter);
        while ($row = $select_stmt->fetch(PDO::FETCH_ASSOC )) {
            $linedata = [$row['id'], $row['name'], $row['family'], $row['age']];
            fputcsv($f, $linedata, $delimiter);
        }
        fpassthru($f);
    }
}
مهدی اردشیر
مهدی اردشیر
@mehdi0121

تخصص: یه برنامه نویس

سللام خروجی هم بذار

شاید پاسخ شما همین‌جا باشد

m.mahmoudi
m.mahmoudi
@m.mahmoudi7276

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام