Cześć. Podpiąłem sobie pod button funkcję, która eksportuje z bazy danych wszystkie rekordy ze statusem "oczekujące" oraz "reklamacja". Button działa, ale nie mam już kompletnie pomysłu jak ustawić poprawne kodowanie znaków, bo w dalszym stopniu jak otwieram w MS Excel to otrzymuję bez polskich znaków sad.gif(( Jeśli wrzucę wygenerowany plik CSV do arkuszy od Google to już jest wtedy wszystko tak jak powinno być, ale pojawia się kolejny problem, że po zapisaniu do excela znów otrzymuje plik tym razem z pustymi rekordami.
Jedynie poprawny format plików miałem eksportując zamówienia ręcznie z poziomu phpmyadmin ustwiając format jako CSV for MS Excel oraz kodawnie WIN-1250. Na bazie kodowanie ustawione na utf8mb4_unicode_ci. Dodatkowo mam pytanie, czy będzie się dało zrobić tak, aby dodać zadanie CRON i plik będzie generować się automatycznie raz dziennie o wskazanej godzinie oraz od razu leciał na wskazany przeze mnie adres e-mail.


$fname = 'zamowienia.csv';


ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);


$host = "xxx";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
$conn = new mysqli($host, $username, $password, $dbname);
if(!$conn){
die("Cannot connect to the database.". $conn->error);
}


$conn->set_charset("utf8");

$header = ["ID","imie", "aukcja", "wzor", "data", "data_zam","notatka","status","ship"];
$query = "SELECT * FROM orders WHERE (status='Oczekujące' OR status='Reklamacja' ) ORDER by ID";
$qry = $conn->query($query);


if($qry->num_rows <= 0){
echo "<script> alert('cos poszlo nie tak.'); location.href = 'index.php'; </script>";
exit;
}


//Open a File

$file = fopen($fname,"w");

// Attach Header
fputcsv($file, $header,',');


// Loop the data and put it into the CSV file
while($row = $qry->fetch_assoc()){
fputcsv($file, [$row['id'], $row['imie'], $row['aukcja'], $row['wzor'], $row['data'], $row['data_zam'],$row['notatka'],$row['status'],$row['ship']]);
}


echo "<script> location.href = '$fname'; </script>";

exit;