Si, ma forse non hai capito cosa intendo io.... o forse io non ho capito cosa serve a te.
Se vuoi aggiornare il record di una news, non devi fare l'INSERT, ma l'UPDATE.
Suppongo che ci sia una pagina con una form per linserimento della news.
Oltre ai campi classici (titolo, testo) ci sono anche quelli per la scelta e l'upload delle foto.
La pagina cui punta l'action della form riceve le variabili (presumibilmente via POST) e le mette nel DB.
Ergo il tuo script dovrebbe essere qualcosa tipo:
Codice PHP:
// ricavo le variabili passate dalla form
$titolo = $_POST['titolo'];
$testo = $_POST['testo'];
// query per inserire i testi della news
$sql = "INSERT INTO tabella SET(titolo, testo) VALUES($titolo, $testo) ";
$query = mysql_query($sql) OR DIE ('Messaggio di errore');
// ricavo l'ID del record appena creato
$id = mysql_insert_id();
Ora devi andare ad aggiornare il record con le foto relative (ammesso che siano state inserite).
Codice PHP:
if ((!isset($foto1) AND $foto1 =='' OR (!isset($foto2) AND $foto2 =='' OR (!isset($foto3) AND $foto3 =='' ) {
// nessun file uploadato => messaggio di cortesia (opzionale)
} else {
// almeno un file è stato uploadato per cui passo all'update del record
$cartella_foto = "nome/cartellla";
for ($i = 1; $i <= 3; $i++) {
$file = $_FILES['foto.$i'];
$nome_foto = $_FILES['foto.$i']["tmp_name"];
// salvo il file nella cartella
@copy($file, "$nome_foto/$nome_foto") or die("Messaggio di errore che blocca lo script");
// definisce una nuova variabile (vedrai poi a cosa serve)
if ($i == 1) {
$set .= " foto1 = '$file' ";
} else {
$set .= ", foto".$i." = '$nome_foto' ";
}
// si esce dal ciclo di FOR
}
$sql_update = "
UPDATE tabella
SET $set
WHERE id = $id
";
$query = mysql_query($sql_update) OR DIE ("Messaggio di errore");
}
Qui rientrano, però, le osservazioni che ti ho fatto nel mio precedente post riguardo la struttura della tua tabella MySQL.
Devi strutturarla diversamente se vuoi agire con questo metodo (dove peraltro ho evitato di crearti un record per una miniatura che - di fatto - non esiste). Sostanzialmente, le colonne che devi avere nel tuo DB dovrebbero essere chiamate foto1 , foto2 , foto3 .
Avendo scritto il codice qui senza provarlo, c'è la seria possibilità che abbia fatto qualche errore.
Spero che sia abbastanza chiaro, così puoi apportare le dovute correzioni.