setQuery("SELECT * FROM `trf-details` ORDER BY `trf-details`.trfnumber DESC LIMIT 1"); $lasttrfnumber->execute(); // Variabili per la modifica dei campi $lastnumber = $lasttrfnumber->getColumnVal("trfnumber"); $nexttrfnumber = $lastnumber + 1; $datein = date('Y-m-d'); $tempcode = time(); $idtrf = $_GET["idtrf"]; ?> connect_error) { die("Connessione fallita: " . $conn->connect_error); } // Selezionare la riga da duplicare $sql_select = "SELECT * FROM `trf-details` WHERE `trf-details`.idtrfdetails = '$idtrf'"; $result_select = $conn->query($sql_select); $row = $result_select->fetch_assoc(); // Creare una copia dell'array con tutte le colonne invariate $new_row = $row; $trfoldnumber = $new_row['trfnumber']; unset($new_row['idtrfdetails']); unset($new_row['pdffilename']); unset($new_row['pdffilename2']); unset($new_row['csgo']); unset($new_row['csincharge']); unset($new_row['datecsincharge']); unset($new_row['signedon']); unset($new_row['signedonsecondcert']); unset($new_row['revtrf']); if (is_null($new_row['photofilename'])) { unset($new_row['photofilename']); } if (is_null($new_row['photoone'])) { unset($new_row['photoone']); } if (is_null($new_row['phototwo'])) { unset($new_row['phototwo']); } // Modificare solo le colonne necessarie $new_row['idtrfdetails'] = null; $new_row['pdffilename'] = null; $new_row['pdffilename2'] = null; $new_row['csgo'] = null; $new_row['csincharge'] = null; $new_row['datecsincharge'] = null; $new_row['signedon'] = null; $new_row['signedonsecondcert'] = null; $new_row['trfnumber'] = $nexttrfnumber; $new_row['iduser'] = $iduserlogin; $new_row['dateintrf'] = $datein; $new_row['tempcode'] = $tempcode; $new_row['revtrf'] = '0'; // Inserire la nuova riga nella tabella trf-details $columns = implode(", ", array_keys($new_row)); $values = "'" . implode("', '", array_values($new_row)) . "'"; $sql_insert = "INSERT INTO `trf-details` ($columns) VALUES ($values)"; if ($conn->query($sql_insert) === TRUE) { echo "Nuova riga inserita con successo TRF-Details"; } else { echo "Errore nell'inserimento della nuova riga: " . $conn->error; } ?> setQuery("SELECT * FROM `trf-details` WHERE `trf-details`.trfnumber='$nexttrfnumber'"); $newidtrf->execute(); $newidtrfnumber = $newidtrf->getColumnVal("idtrfdetails"); ?> query($sql_insert) === TRUE) { echo "Nuova riga inserita con successo AuditDPI"; // Ottengo l'ID della nuova riga inserita $newidauditdpi = $conn->insert_id; // Preparo la query per selezionare le righe da duplicare in auditmanufacturer $queryman = "SELECT * FROM auditmanufacturer WHERE idtrfdetails = '$idtrf' AND idauditdpi = '$oldidauditdpi'"; $resultman = mysqli_query($conn, $queryman); while ($rowman = mysqli_fetch_assoc($resultman)) { // Imposto il valore di idtrfdetails come desiderato (es. 250) $rowman['idtrfdetails'] = $newidtrfnumber; // Assegno il nuovo idauditdpi ottenuto dalla duplicazione in auditdpi $rowman['idauditdpi'] = $newidauditdpi; // Lascio idauditmanufacturer nullo (sarà generato automaticamente) unset($rowman['idauditmanufacturer']); // Preparo la query per duplicare la riga in auditmanufacturer $columnsman = implode(", ", array_keys($rowman)); $valuesman = "'" . implode("', '", array_values($rowman)) . "'"; $sql_insert_man = "INSERT INTO auditmanufacturer ($columnsman) VALUES ($valuesman)"; if ($conn->query($sql_insert_man) === TRUE) { echo "Nuova riga inserita con successo in Auditmanufacturer."; } else { echo "Errore nell'inserimento della nuova riga in Auditmanufacturer: " . $conn->error; } } $queryfile = "SELECT * FROM fileattached WHERE idtrfdetails = '$idtrf' AND idauditdpi = '$oldidauditdpi'"; $resultfile = mysqli_query($conn, $queryfile); // Ciclo attraverso i risultati e duplico le righe while ($rowfile = mysqli_fetch_assoc($resultfile)) { // Imposto il valore di idtrfdetails come 250 $rowfile['idtrfdetails'] = $newidtrfnumber; $rowfile['idauditdpi'] = $newidauditdpi; // Lascio idfileattached nullos unset($rowfile['idfileattached']); // Query per duplicare la riga $columnsfile = implode(", ", array_keys($rowfile)); $valuesfile = "'" . implode("', '", array_values($rowfile)) . "'"; $sql_insertfile = "INSERT INTO fileattached ($columnsfile) VALUES ($valuesfile)"; if ($conn->query($sql_insertfile) === TRUE) { echo "Nuova riga inserita con successo fileattached"; } else { echo "Errore nell'inserimento della nuova riga: " . $conn->error; } } } else { echo "Errore nell'inserimento della nuova riga: " . $conn->error; } } ?> query($sql_insert) === TRUE) { echo "Nuova riga inserita con successo contacts"; } else { echo "Errore nell'inserimento della nuova riga: " . $conn->error; } } ?> query($sql_insert) === TRUE) { echo "Nuova riga inserita con successo fileattached"; } else { echo "Errore nell'inserimento della nuova riga: " . $conn->error; } } ?> set_charset("utf8mb4"); if ($conn->connect_error) { die("Connessione fallita: " . $conn->connect_error); } // Query per selezionare le righe da duplicare $query = "SELECT * FROM identificationparts WHERE idtrfdetails = '$idtrf'"; $result = mysqli_query($conn, $query); // Ciclo attraverso i risultati e duplico le righe while ($row = mysqli_fetch_assoc($result)) { // Imposto il valore di idtrfdetails con il nuovo ID $row['idtrfdetails'] = $newidtrfnumber; // Lascio identificationparts nullo (sarà generato automaticamente) unset($row['ididentificationparts']); // Controllo la lunghezza di article_identificationparts (limite 250 caratteri) if (isset($row['article_identificationparts']) && mb_strlen($row['article_identificationparts'], 'UTF-8') > 250) { $row['article_identificationparts'] = mb_substr($row['article_identificationparts'], 0, 250, 'UTF-8'); echo "Attenzione: article_identificationparts troncato a 250 caratteri."; } // Preparo la query con prepared statements $columns = implode(", ", array_keys($row)); $placeholders = implode(", ", array_fill(0, count($row), "?")); $sql_insert = "INSERT INTO identificationparts ($columns) VALUES ($placeholders)"; // Preparo lo statement $stmt = $conn->prepare($sql_insert); if ($stmt === false) { echo "Errore nella preparazione della query: " . $conn->error; continue; } // Creo un array di valori e determino i tipi per il bind $values = array_values($row); $types = str_repeat("s", count($values)); // Tratto tutto come stringa per semplicità, puoi ottimizzare i tipi se necessario $stmt->bind_param($types, ...$values); // Eseguo l'inserimento if ($stmt->execute()) { echo "Nuova riga inserita con successo in identificationparts"; } else { echo "Errore nell'inserimento della nuova riga in identificationparts: " . $stmt->error; } // Chiudo lo statement $stmt->close(); } // Chiudo la connessione $conn->close(); ?> query($sql_insert) === TRUE) { echo "Nuova riga inserita con successo trfaddrequirements"; } else { echo "Errore nell'inserimento della nuova riga: " . $conn->error; } } ?> query($sql_insert) === TRUE) { echo "Nuova riga inserita con successo trfchemicalagent"; } else { echo "Errore nell'inserimento della nuova riga: " . $conn->error; } } ?> query($sql_insert) === TRUE) { echo "Nuova riga inserita con successo trfstandards"; } else { echo "Errore nell'inserimento della nuova riga: " . $conn->error; } } ?> query($sql_insert) === TRUE) { echo "Nuova riga inserita con successo wheretrfstep"; } else { echo "Errore nell'inserimento della nuova riga: " . $conn->error; } } ?>