У меня есть фрагмент кода, где я вызываю набор результатов с запросом, а затем отправляю результаты по электронной почте в виде CSV. Один столбец моих результатов возвращает либо 1, либо 0. Мне бы хотелось, чтобы при создании CSV записывалось YES для результатов с 1 и No для результатов, возвращаемых как 0. Это только для одного столбца, поэтому Я не мог использовать str_replace, так как это повлияло бы на все данные (я не очень хорош в PHP, поэтому могу ошибаться).
Я попробовал несколько вещей, но ни одна из них не работает, ниже приведен раздел кода, который я попробовал:
while ($row = mysqli_fetch_array($result)) {
if ($row->Optin_Marketing == "1") {
$mark = 'YES';
}
else {
$mark = 'NO';
}
$row->Optin_Marketing = $mark;
for ($i = 0; $i < $columns; $i++) {
$row = str_replace('"', '', $row);
$row = str_replace('en ', '', $row);
// clean up the data; strip slashes; replace double quotes with two single quotes
$data_rows .= $file["csv_contain"] . preg_replace('/'.$file["csv_contain"].'/', $file["csv_contain"].$file["csv_contain"], stripslashes($row[$i])) . $file["csv_contain"];
$data_rows .= ($i < $columns-1) ? $file["csv_separate"] : '';
}
$data_rows .= $this->csv_end_row; // add data row to CSV file
}
Любая помощь по этому вопросу будет принята с благодарностью.
Спасибо
Мой запрос:
$emailCSV->setQuery('SELECT
orderheader.ordernumber As Order_Number
, ccilog.orderid AS Order_ID
, ccilog.userid AS User_ID
, orderheader.billingcustomeremailaddress AS Customer_Email
, orderheader.billingcontactfirstname AS First_Name
, orderheader.billingcontactlastname AS Last_Name
, orderheader.billingcustomername AS Company
, orderheader.billingcustomeraddress1 AS Address_1
, orderheader.billingcustomeraddress2 AS Address_2
, orderheader.billingcustomeraddress3 AS Address_3
, orderheader.billingcustomercity AS City
, orderheader.billingcustomercounty AS County
, orderheader.billingcustomerpostcode AS Postcode
, users.sendmarketinginfo AS Optin_Marketing
FROM orderheader
LEFT JOIN users ON orderheader.userid=users.id
LEFT JOIN ccilog ON orderheader.id=ccilog.orderid
LEFT JOIN orderitems ON ccilog.orderid=orderitems.orderid
WHERE ccilog.formattedpaymentdate >= "'.$start.'" AND ccilog.formattedpaymentdate <= "'.$end.'"
');