m.mahmoudi
3 سال پیش توسط m.mahmoudi مطرح شد
4 پاسخ

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

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


ثبت پرسش جدید
m.mahmoudi
@m.mahmoudi7276 3 سال پیش مطرح شد
0

این کدی هست که من تا الان نوشتم قسمت
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 3 سال پیش مطرح شد
0

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


m.mahmoudi
@m.mahmoudi7276 3 سال پیش مطرح شد
میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد

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

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