prepare($sql); $stmt->execute($ids); $orders = $stmt->fetchAll(PDO::FETCH_ASSOC); // Ustawienia nagłówków dla przeglądarki, by wymusić pobieranie pliku header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=zamowienia_' . date('Ymd_Hi') . '.csv'); // Wymuszenie BOM (dzięki temu Excel od razu poprawnie przeczyta polskie znaki w UTF-8) echo "\xEF\xBB\xBF"; $output = fopen('php://output', 'w'); // Zapisanie nagłówków kolumn (zwróć uwagę na średniki, które lubi polski Excel) fputcsv($output, ['ID', 'Produkt', 'Part Number', 'Ilosc', 'Miejsce zakupu', 'Cena szt.', 'Data dostawy', 'Odbiorca', 'Adres dostawy', 'Status', 'Notatki'], ';'); // Zapisywanie danych foreach ($orders as $o) { fputcsv($output, [ $o['id'], $o['product_name'], $o['part_number'], $o['quantity'], $o['purchase_place'], number_format($o['price_per_unit'], 2, ',', ''), // Cena z przecinkiem dla Excela $o['delivery_date'], $o['recipient'], $o['delivery_address'], $o['status'], $o['notes'] ], ';'); } fclose($output); exit(); } // Jeśli ktoś wszedł tu bezpośrednio lub nic nie zaznaczył, wracamy do indexu header('Location: index.php'); exit(); ?>