Здравствуйте! У меня задача состоит в следующем. Есть таблица. Нужно сделать запрос к базе, выбрать все поля таблицы. Строки таблицы сохранить в файл *.csv, предварительно создав папку, чтобы эти файлы там хранились. Правильно ли я понимаю, что сначала в этой задаче должны идти данные таблицы, SELECT, затем сохранение таблицы в файл *.csv и перенос документов в нужную папку. И не шибко понимаю, как это все провернуть в коде. Все, что накидала, но все сырое. <?php $host = 'localhost'; // адрес сервера $db_name = 'database'; // имя базы данных $user = 'user'; // имя пользователя $password = 'password'; // пароль // создание подключения к базе $connection = mysqli_connect($host, $user, $password, $db_name); // текст SQL запроса, который будет передан базе $query = 'SELECT * FROM `USERS`'; // выполняем запрос к базе данных $result = mysqli_query($connection, $query); // выводим полученные данные в таблицу foreach ($row = $result->fetch_assoc()) { fputcsv($fp, $fields); // закрываем соединение с базой mysqli_close($connection); fputcsv( resource $stream, array $fields, string $separator = ",", string $enclosure = "\"", string $escape = "\\", string $eol = "\n" ): int|false ?>
Вам нужно создать массив: Код (Text): // выполняем запрос к базе данных $result = mysqli_query($connection, $query); //создаем массив $fields = []; // заносим данные из базы в созданный массив foreach ($row = $result->fetch_assoc()) { $fields[] = $row; } //теперь можно использовать функцию fputcsv($fp, $fields);
Еще немного отредачила, но теперь вопрос в том, куда писать SELECT, что идеть до него, а что после. И правильно ли у меня SELECT стоит, не нужно ли вынести его за пределы php. <?php $host = 'localhost'; // адрес сервера $db_name = 'database'; // имя базы данных $user = 'user'; // имя пользователя $password = 'password'; // пароль // создание подключения к базе $connection = mysqli_connect($host, $user, $password, $db_name); // текст SQL запроса, который будет передан базе $query = 'SELECT * FROM `USERS`'; // выполняем запрос к базе данных $result = mysqli_query($connection, $query); //создаем массив $fields = []; // заносим данные из базы в созданный массив while($row = mysql_fetch_assoc($result)) { fputcsv($row); } // выводим полученные данные в таблицу foreach ($row = $result->fetch_assoc()) { fputcsv($fp, $fields); //теперь можно использовать функцию fputcsv($fp, $fields); } // закрываем соединение с базой mysqli_close($connection); } fputcsv( resource $stream, array $fields, string $separator = ",", string $enclosure = "\"", string $escape = "\\", string $eol = "\n" ): int|false ?>
Смотря какую задачу вы себе поставили. Если вы хотите данные из таблицы преобразовать в CSV с помощью PHP, то от MySQL вам нужна только выборка. Если же выгрузить CSV вы хотите с помощью MySQL, то от PHP вам нужна только папка, так как MySQL папку создать не может.