Skip to content

Instantly share code, notes, and snippets.

@reactcoder-it
Last active April 5, 2024 13:58
Show Gist options
  • Save reactcoder-it/01c0d6e88f832179aea0bf39b74e7e86 to your computer and use it in GitHub Desktop.
Save reactcoder-it/01c0d6e88f832179aea0bf39b74e7e86 to your computer and use it in GitHub Desktop.
const mysql = require("mysql")
const fs = require("fs")
const json2csv = require("json2csv").Parser
const connection = mysql.createConnection({
host: "localhost",
user: "",
password: "",
database: "",
})
const query = `
SELECT
p.ID AS order_id,
p.post_date AS order_date,
p.post_status AS order_status,
MAX(CASE WHEN pm.meta_key = '_billing_first_name' THEN pm.meta_value END) AS billing_first_name,
MAX(CASE WHEN pm.meta_key = '_billing_last_name' THEN pm.meta_value END) AS billing_last_name,
MAX(CASE WHEN pm.meta_key = '_billing_email' THEN pm.meta_value END) AS billing_email,
MAX(CASE WHEN pm.meta_key = '_billing_phone' THEN pm.meta_value END) AS billing_phone,
MAX(CASE WHEN pm.meta_key = '_shipping_first_name' THEN pm.meta_value END) AS shipping_first_name,
MAX(CASE WHEN pm.meta_key = '_shipping_last_name' THEN pm.meta_value END) AS shipping_last_name,
MAX(CASE WHEN pm.meta_key = '_shipping_address_1' THEN pm.meta_value END) AS shipping_address_1,
MAX(CASE WHEN pm.meta_key = '_shipping_address_2' THEN pm.meta_value END) AS shipping_address_2,
MAX(CASE WHEN pm.meta_key = '_order_total' THEN pm.meta_value END) AS total_order_amount -- Добавленный столбец с общей суммой заказа
FROM
wp_posts p
JOIN
wp_postmeta pm ON p.ID = pm.post_id
WHERE
p.post_type = 'shop_order'
GROUP BY
p.ID;
`
connection.connect((err) => {
if (err) {
console.error("Ошибка подключения к базе данных:", err)
return
}
console.log("Подключение к базе данных успешно!")
// Пример запроса
connection.query(query, (err, results) => {
if (err) {
console.error("Ошибка выполнения запроса:", err)
return
}
console.log("Результаты запроса:", results)
const fields = Object.keys(results[0])
const parser = new json2csv({ fields, delimiter: ";" })
const csv = parser.parse(results)
fs.writeFile("results.csv", "\uFEFF" + csv, { encoding: "utf8" }, (err) => {
if (err) {
console.error("Ошибка сохранения файла:", err)
return
}
console.log("Результаты успешно сохранены в файле results.csv")
})
})
// Закрытие соединения
connection.end((err) => {
if (err) {
console.error("Ошибка закрытия соединения:", err)
return
}
console.log("Соединение успешно закрыто!")
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment