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

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

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


ثبت پرسش جدید
m.mahmoudi
m.mahmoudi
@m.mahmoudi72764 سال پیشمطرح شد
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);
    }
}

مهدی اردشیر
مهدی اردشیر
تخصص :یه برنامه نویس
@mehdi01214 سال پیشمطرح شد
0

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


m.mahmoudi
m.mahmoudi
@m.mahmoudi72764 سال پیشمطرح شد

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

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