real_escape_string($_GET['idtrf']) : die('IDTRF non specificato.'); // Assicurati che la query includa kindoftest $query = "SELECT identificationparts.description_identificationparts, identificationparts.article_identificationparts, identificationparts.color_identificationparts, identificationparts.component_identificationparts, identificationparts.material_identificationparts, identificationparts.cmcreportnumber_identificationparts, identificationparts.cmcreportdate_identificationparts, identificationparts.reportof, identificationparts.partsidnumber, identificationparts.kindoftest -- Assicurati che questo campo sia incluso FROM identificationparts LEFT JOIN partsordercimac ON partsordercimac.arttypeid = identificationparts.arttypeid AND partsordercimac.partsidpicture = identificationparts.partsidnumber WHERE identificationparts.idtrfdetails = '$idtrf' ORDER BY CASE WHEN partsordercimac.partsidcimac IS NULL THEN 9999 ELSE partsordercimac.partsidcimac END"; $result = $conn->query($query); if (!$result) { die("Errore nell'esecuzione della query: " . $conn->error); } // Impostazioni dell'header per il download del file Excel header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=lista_parti.xls"); echo ' Report Sheet '; // Inizializzazione di un array per raccogliere i dati $dati = []; while ($row = $result->fetch_assoc()) { $dati[] = $row; } // Inizio della tabella Excel echo ""; // Creazione delle colonne per ogni record $numeroColonne = count($dati); if ($numeroColonne > 0) { // Calcolo del numero massimo di righe necessarie (uguale al numero di campi per record) $numeroRighe = count($dati[0]); // Generazione delle intestazioni di colonna echo ""; foreach ($dati as $indice => $record) { // Usa htmlspecialchars per evitare problemi con caratteri speciali echo ""; } echo ""; // Array delle chiavi per accedere ai valori in modo ordinato $chiavi = array_keys($dati[0]); // Creazione delle righe, escludendo la colonna description_identificationparts dall'essere ripetuta for ($i = 1; $i < $numeroRighe; $i++) { // Inizia da 1 per saltare 'description_identificationparts' echo ""; foreach ($dati as $record) { echo ""; } echo ""; } } echo "
" . htmlspecialchars($record['description_identificationparts']) . "
" . htmlspecialchars($record[$chiavi[$i]]) . "
"; echo ''; $conn->close();