<?php
// Connessione al database WooCommerce
$servername = "localhost";
$username = "fabio";
$password = "aaa";
$dbname = "edises_1";
$conn = new mysqli($servername, $username, $password, $dbname);
// Verifica della connessione
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
// Esegui la query per estrarre gli attributi dei prodotti
$sql = "SELECT p.ID as id_prodotto, pm.meta_value as attributi_serializzati
FROM ed2024_posts p
JOIN ed2024_postmeta pm ON p.ID = pm.post_id
WHERE p.post_type = 'product'
AND pm.meta_key = '_product_attributes'";
$result = $conn->query($sql);
// Creazione del file CSV
$csvFileName = 'attributi_grezzi.csv';
$csvFile = fopen($csvFileName, 'w');
// Inizializza un array per tenere traccia di tutti i nomi degli attributi
$attributi_header = array('id_prodotto');
$attributi_rows = array();
// Elabora i risultati della query e costruisci l'array degli attributi
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$attributi = unserialize($row['attributi_serializzati']);
$attributi_row = array('id_prodotto' => $row['id_prodotto']);
foreach ($attributi as $nome_attributo => $dettagli_attributo) {
if (!in_array($nome_attributo, $attributi_header)) {
$attributi_header[] = $nome_attributo;
}
if (isset($dettagli_attributo['value'])) {
$attributi_row[$nome_attributo] = $dettagli_attributo['value'];
} elseif (isset($dettagli_attributo['name'])) {
$attributi_row[$nome_attributo] = $dettagli_attributo['name'];
}
}
$attributi_rows[] = $attributi_row;
}
} else {
echo "Nessun risultato trovato";
}
// Scrivi l'intestazione nel file CSV
fputcsv($csvFile, $attributi_header);
// Scrivi i valori degli attributi nel file CSV
foreach ($attributi_rows as $attributi_row) {
$csvRow = array();
foreach ($attributi_header as $header) {
$csvRow[] = isset($attributi_row[$header]) ? $attributi_row[$header] : '';
}
fputcsv($csvFile, $csvRow);
}
// Chiudi la connessione al database e il file CSV
$conn->close();
fclose($csvFile);
echo "File CSV creato con successo: " . $csvFileName;
?>
<?php
// Connessione al database WooCommerce
$servername = "localhost";
$username = "fabio";
$password = "aaa";
$dbname = "edises_1";
$conn = new mysqli($servername, $username, $password, $dbname);
// Verifica della connessione
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
// Prima query per estrarre gli attributi dei prodotti
$sql = "SELECT p.ID as id_prodotto, pm.meta_value as attributi_serializzati
FROM ed2024_posts p
JOIN ed2024_postmeta pm ON p.ID = pm.post_id
WHERE p.post_type = 'product' AND pm.meta_key = '_product_attributes'";
$result = $conn->query($sql);
// Inizializza un array per tenere traccia di tutti i nomi degli attributi
$attributi_header = array('id_prodotto');
$attributi_rows = array();
// Elabora i risultati della prima query e costruisci l'array degli attributi
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$attributi = unserialize($row['attributi_serializzati']);
$attributi_row = array('id_prodotto' => $row['id_prodotto']);
foreach ($attributi as $nome_attributo => $dettagli_attributo) {
if (!in_array($nome_attributo, $attributi_header)) {
$attributi_header[] = $nome_attributo;
}
$attributi_row[$nome_attributo] = $dettagli_attributo['value'] ?? $dettagli_attributo['name'] ?? '';
}
$attributi_rows[$row['id_prodotto']] = $attributi_row;
}
} else {
echo "Nessun risultato trovato per la prima query";
}
// Seconda query per ottenere informazioni aggiuntive
$sql2 = "SELECT
t.name AS attribute_name,
tt.taxonomy AS attribute_taxonomy,
tr.object_id AS product_id,
p.post_title AS product_name
FROM
ed2024_terms t
JOIN
ed2024_term_taxonomy tt ON t.term_id = tt.term_id
JOIN
ed2024_term_relationships tr ON tt.term_taxonomy_id = tr.term_taxonomy_id
JOIN
ed2024_posts p ON tr.object_id = p.ID
WHERE
p.post_type = 'product'
ORDER BY
p.ID, tt.taxonomy;";
$result2 = $conn->query($sql2);
// Elabora i risultati della seconda query
if ($result2->num_rows > 0) {
while($row2 = $result2->fetch_assoc()) {
$product_id = $row2['product_id'];
$attribute_taxonomy = $row2['attribute_taxonomy'];
$attribute_name = $row2['attribute_name'];
// Aggiungi il nuovo header se non esiste
if (!in_array($attribute_taxonomy, $attributi_header)) {
$attributi_header[] = $attribute_taxonomy;
}
// Assicurati che l'array per questo prodotto esista
if (!isset($attributi_rows[$product_id])) {
$attributi_rows[$product_id] = array('id_prodotto' => $product_id);
}
// Aggiorna l'array dei dati del prodotto
$attributi_rows[$product_id][$attribute_taxonomy] = $attribute_name;
}
} else {
echo "Nessun risultato trovato per la seconda query";
}
// Creazione del file CSV
$csvFileName = 'attributi_completi.csv';
$csvFile = fopen($csvFileName, 'w');
// Scrivi l'intestazione nel file CSV
fputcsv($csvFile, $attributi_header);
// Scrivi i valori degli attributi nel file CSV
foreach ($attributi_rows as $product_id => $attributi_row) {
$csvRow = array();
foreach ($attributi_header as $header) {
$csvRow[] = $attributi_row[$header] ?? '';
}
fputcsv($csvFile, $csvRow);
}
// Chiudi la connessione al database e il file CSV
$conn->close();
fclose($csvFile);
echo "File CSV creato con successo: " . $csvFileName;
?>