Экспорт таблицы результатов из этого - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть файл php, который подключается к базе данных ниже, он работает нормально и отображает таблицу результатов, в которой пользователь указывает один файл с раскрывающимся списком, и в нем есть Jquery указатель даты для диапазона дат в выбранном запрос. Это грязно (извините за это!), Но функционально. Проблема в том, что я хочу добавить кнопку загрузки, чтобы конечный пользователь мог выводить то, что на экране, в CSV, включая заголовки. Мои попытки выявить мой любительский подход к кодированию (то есть я не могу это сделать!) Я возился с плагином table2excel. Я уверен, что это проще, чем то, что я не уверен, как написать функцию .csv, сохраняя при этом код, который я есть или действительно ли это может быть сделано вокруг существующего кода. Большинство моих попыток экспорта в .csv дали пустой .csv или прекрасный .csv моего реального кода !!

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT CLIENT.company,CLIENT.first,CLIENT.last,INVOICES.clientid,CLIENT.class_id,INVOICES.invid,FROM_UNIXTIME(INVOICES.date)as date,INVOICES.amount,payment_records.type,inv_taxes.name,inv_taxes.value,inv_taxes.rate
FROM `INVOICES`
LEFT JOIN payment_records ON payment_records.invid = INVOICES.invid
LEFT JOIN inv_taxes ON inv_taxes.invid = INVOICES.invid
RIGHT JOIN CLIENT ON CLIENT.clientid = payment_records.clientid
where  CLIENT.class_id = :Brand_Id and INVOICES.date >= :from_date && INVOICES.date <= :to_date GROUP BY INVOICES.invid");

$stmt->bindParam(":Brand_Id",     ($_POST['Brand_Id']));
$stmt->bindParam(":from_date", ($_POST['from_date']));
$stmt->bindParam(":to_date",     ($_POST['to_date']));

    $stmt->execute();

    // set the resulting array to associative
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);

    foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
        echo $v;
    }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>
<!-- This is my script which does display the datepicker when the input boxes are clicked -->
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Taxes </title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
$.datepicker.setDefaults({
showOn: "button",
buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif",
buttonText: "Date Picker",
buttonImageOnly: true,
dateFormat: '@', 
altTimeFormat: 'HH mm ss' 
});
$(function() {
$("#from_date").datepicker({ dateFormat: '@' })
        .change( function(){ this.value = parseInt(this.value,10)/1000; });
$("#to_date").datepicker({ dateFormat: '@' })
        .change( function(){ this.value = parseInt(this.value,10)/1000; });
});
</script>
<!--{ dateFormat : '@'}-->
</body>
</html>

1 Ответ

0 голосов
/ 09 апреля 2020

Вы можете сохранить свои результаты в массиве и использовать fputcsv , чтобы поместить их в CSV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...