Есть код который делает выборку строк по дате from - to и отображает их. Как правильно составить запрос (в excel.php) на выбранные строки, чтобы экспортировать их в excel ? Спасибо. Код (PHP): <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery UI Datepicker - Default functionality</title> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css"> <script> $(function() { $( "#datepicker_from, #datepicker_to" ).datepicker( { dateFormat: "yy-mm-dd" } ); }); </script> </head> <body> <form method="post"> <p>Дата от : <input type="text" id="datepicker_from" name="data_from"> Дата до : <input type="text" id="datepicker_to" name="data_to"> </p> <input type='submit'> </form> <?php if(isset($_POST['data_from']) || isset($_POST['data_to'])){ try { $host = 'localhost'; $dbname = '123'; $user = 'root'; $pass = ''; $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $query = "SELECT * FROM vesy"; if(isset($_POST['data_from']) && $_POST['data_from'] !== '') $query .= " WHERE date >= '".$_POST['data_from']."'"; if(isset($_POST['data_to']) && $_POST['data_to'] !== '') $query .= " AND date <= '".$_POST['data_to']."'"; $STH = $DBH->query($query); $STH->setFetchMode(PDO::FETCH_ASSOC); echo "FROM {$_POST['data_from']} TO {$_POST['data_to']}" ; // выводим на страницу сайта заголовки HTML-таблицы echo '<table border="1">'; echo '<thead>'; echo '<tr>'; echo '<th>date</th>'; echo '<th>Massa</th>'; echo '<th>frakcia</th>'; echo '</tr>'; echo '</thead>'; echo '<tbody>'; // выводим в HTML-таблицу все данные клиентов из таблицы MySQL while($row = $STH->fetch()) { echo '<tr>'; echo '<td>' . $row['date'] . '</td>'; echo '<td>' . $row['Massa'] . '</td>'; echo '<td>' . $row['frakcia'] . '</td>'; echo '</tr>'; } echo '</tbody>'; echo '</table>'; } catch(PDOException $e) { echo $e->getMessage(); } } ?> // выводим в Excel <button type="submit" class="btn btn-primary" onClick="document.location.href='/excel.php'">Экспорт в Exel </button> </body> Файл excel.php Код (PHP): <?PHP function cleanData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $str = preg_replace("/\r?\n/", "\\n", $str); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; } // Имя загружаемого файла файла. $filename = "otchet_" . date('Ymd') . ".xls"; header("Content-Disposition: attachment; filename=\"$filename\""); header("Content-Type: application/vnd.ms-excel"); // Подключение к бд $db_host = 'localhost'; $db_name = '123'; $db_username = 'root'; #$db_password = ''; //Указать кодировку выводимых данных mysql_query('SET character_set_database = cp1251_general_ci'); mysql_query ("SET NAMES 'cp1251'"); //запрос и вывод данных $flag = false; $result = mysql_query("SELECT * FROM table ORDER BY Data DESC") or die('Запрос не выполнен!'); while(false !== ($row = mysql_fetch_assoc($result))) { if(!$flag) { // Вывод заголовков echo implode("\t", array_keys($row)) . "\r\n"; $flag = true; } //Вывод данных столбцов array_walk($row, 'cleanData'); echo implode("\t", array_values($row)) . "\r\n"; } exit; ?>
Да. проблемы с составление SQL запроса на выборку данных по условию в excel.php Нужен экспорт строк которые выбрали по дате. скрин. http://prntscr.com/aiw832
Смотрю что у тебя данные уже выводятся на страницу, зачем тогда SQL запрос другой делать? Или ты просто вообще ничего не понимаешь в этом?
ты создаешь текст в формате csv с разделителем \t, но сохранить предлагаешь с расширением .xls. это не одно и то же. для экспорта в xls или xlsx есть специальные библиотеки, недавно обсуждалось здесь, поищи. а эскпорт в csv лучше делать через встроенную функцию fputcsv(). только тогда честно объявляй content-type и расширение файла. никакой это не excel. Добавлено спустя 1 минуту 1 секунду: вот: https://php.ru/forum/viewtopic.php?f=13&t=57490