I'm trying to generate a CSV but its taking too much time. I have also specified the cols. I want in the query still the generation is very slow, how to speed it up ? Any suggestions will be appreciated. My php code is following, Thanks in advance.
$strdate = strtotime($_POST["strdate"]);
$enddate = strtotime($_POST["enddate"]);
$q0 = "SELECT ordr_id, ordr_cust_id, ordr_b_company, ordr_shipping_selected, ordr_timedate FROM shop_orders WHERE
ordr_ship_id = " . fix($_POST["sid"]) . " AND
ordr_timedate BETWEEN " . fix($strdate) . " AND " . fix($enddate) . "
ORDER BY ordr_timedate DESC";
$r0 = mysqli_query($conn, $q0) or die("Query Failed: Get Orders");
if (mysqli_num_rows($r0) <> 0) {
$prodtype = array("Consumables", "Materials");
$csvfile = "orders-by-supplier.csv";
$file = fopen($csvfile, "w");
// Save headings alon
$HeadingsArray = array(
"Date",
"Order #",
"Customer ID",
"GL Code",
"Company",
"SKU",
"Part #",
"Name",
"Cat",
"Size",
"Price",
"Qty",
"Total",
"Supplier"
);
fputcsv($file, $HeadingsArray);
// Save all records
while ($a0 = mysqli_fetch_array($r0)) {
$q2 = "SELECT cust_gl_code FROM shop_customers WHERE cust_id = " . fix($a0["ordr_cust_id"]) . " LIMIT 1";
$r2 = mysqli_query($conn, $q2) or die("Query Failed: Get Customer");
$a2 = mysqli_fetch_assoc($r2);
// Get Order Content
$q1 = "SELECT orcn_prod_code, orcn_prod_part_num, orcn_prod_name, orcn_prod_type, orcn_option_0, orcn_price, orcn_qty, orcn_total FROM shop_orders_content WHERE orcn_ordr_id = " . fix($a0["ordr_id"]);
$r1 = mysqli_query($conn, $q1) or die("Query Failed: Get Order Content");
while ($a1 = mysqli_fetch_assoc($r1)) {
fputcsv($file, array(
date("d-m-Y", $a0["ordr_timedate"]),
$a0["ordr_id"],
$a0["ordr_cust_id"],
$a2["cust_gl_code"],
$a0["ordr_b_company"],
$a1["orcn_prod_code"],
$a1["orcn_prod_part_num"],
$a1["orcn_prod_name"],
$prodtype[$a1["orcn_prod_type"]],
$a1["orcn_option_0"],
$a1["orcn_price"],
$a1["orcn_qty"],
$a1["orcn_total"],
$a0["ordr_shipping_selected"]
));
}
}
fclose($file);
}