eliminare file e record db

ntoflip

Utente Attivo
26 Ago 2008
50
0
0
Ciao a tutti, come da titolo ho dei dubbi sulla procedura sicura per eliminare dei record dal database e dei file immagine ad essi collegati.

Ho del codice simile al seguente:

Codice:
// $prodotti è un array contenente gli id degli elementi che intendo cancellare 
foreach ($prodotti as $key => $value) {
	
	// 1 cancello il record del prodotto dal db
	$qry1 = "DELETE FROM tabella_prodotti WHERE id = '".$value."'";
	$result1 = mysql_query($qry1, $connessione);
	
	// 2 ottengo le foto relative a quel prodotto
	$qry2 = "SELECT * FROM tabella_foto WHERE idprodotto = '".$value."'";
	$result2 = mysql_query($qry2, $connessione);
	while ($row = mysql_fetch_assoc($result2)) {
		// 3 per ogni foto cancello il file e la sua miniatura
		unlink($row['path']);
		unlink($row['pathm']);
		// 4 elimino la riga della foto
	        $qry3 = "DELETE FROM tabella_foto WHERE id = '".$row['id']."'";
	        $result3 = mysql_query($qry3, $connessione);
	}
	
}

Come faccio per effettuare le operazioni solo se tutte non incontrano problemi?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
che tipo di problemi intendi? Potrebbe mancare o il record o il file?
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
Intendi il problema di eseguire le attività in modalità transazionale, tutte o nessuna, ovvero cancelli record e file o nessuno dei due?
Ciao, Ciro
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
Ciao, dunque quello che chiedi sono le transazioni.

A quanto ho capito, nel tuo caso c'è una operazione su db e una su file.
A tal proposito puoi usufruire di commit e roolback per gestire le transazioni sul db sql mentre per il file devi fare la verifica manuale che questo sia stato eliminato.

In altre parole elimini il file ed il record; poi verifichi che il file ed il recordo non esistono, se ok fai commit viceversa fai roolback; attenzione, però, per il commit\rooblack vale solo per il db ma non per l'eliminazione fisica dei file. Secondo me ti conviene, gestire la transazione manualemnte con una serei di if:
cancelli il record
cancelli il file,
se il file è correttamente cancellato fai commit sul db della cancellazione viceversa roolback.

Di seguito le info per gestire commit e roolback con php:
http://www.devarticles.com/c/a/MySQL/Using-Transactions-with-MySQL-4.0-and-PHP/
http://www.databasejournal.com/features/mysql/article.php/10897_3382171_1/Transactions-in-MySQL.htm
http://www.sastgroup.com/tutorials/una-semplice-transazione-in-php

Ciao, Ciro
 
Discussioni simili
Autore Titolo Forum Risposte Data
Monital [PHP] Eliminare la Barra di caricamento file alla fine dell'esecuzione PHP 11
F eliminare file tramite tag "a" PHP 6
M Eliminare file da una cartella PHP 3
L Upload file - Eliminare un file Classic ASP 16
M Eliminare un file Javascript 1
F come eliminare i file uploadati PHP 2
B Come eliminare un file? HTML e CSS 2
S [VB 17]: Eliminare doppioni in listbox Visual Basic 1
spider81man Eliminare primo ed ultimo carattere di una colonna MySQL 0
G Eliminare l'effetto refresh di una pagina internet PHP 8
M eliminare padding logo sito HTML e CSS 2
A eliminare caratteri speciali mettendo uno spazio PHP 0
A eliminare caratteri diacritici con codice ascii PHP 4
MarcoGrazia Eliminare in automatico i caratteri spuri all'inizio e alla fine di una stringa Snippet PHP 0
L Eliminare estensione .html HTML e CSS 9
L [RISOLTO] Eliminare una discussione creata PHP 3
S Eliminare spazio iniziale PHP 2
S [PHP] Eliminare doppioni array e rinumerare le posizioni PHP 2
maxnegri Eliminare url index.php con variabili e reindirizzare alla home del sito PHP 7
D [ASP] Eliminare gli zeri che nn servono Classic ASP 1
K Come eliminare attributi regex per validazione con javascript Javascript 0
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
P [HTML] Eliminare doppio menu in wordpress WordPress 2
P [WordPress] Eliminare scritta Categories da post WordPress 4
C [PHP] eliminare elemento da un array multidimensionale PHP 9
L Mi trovo nell'impossibilità di eliminare un record nella tabella Database 1
A [WordPress] Eliminare riga codice HTML WordPress 6
loois come eliminare una discussione fata in questo forum ? Discussioni Varie 1
trattorino [PHP] Eliminare piu frasi PHP 1
C [PHP] RISOLTO - Eliminare elementi duplicati da array multidimensionale PHP 1
L [HTML] versione mobile eliminare stile menu da nav HTML e CSS 0
T Come eliminare canonical url da blogger SEO e Posizionamento 0
dany81 [Photoshop] Eliminare più sfondo possibile... Photoshop 3
asevenx [PHP] Eliminare record automaticamente dopo una certa data PHP 12
L Eliminare suono da iframe HTML e CSS 3
G Eliminare scrollbar laterale di visuallightbox jQuery 0
H Eliminare div creato da javascript Javascript 1
9 eliminare righe di una tabella con form html PHP 6
M Eliminare un cookie PHP 1
elpirata Eliminare dati selezionati da una form di select PHP 6
Marco_88 Eliminare una colonna da una LEFT JOIN MySQL 4
A come eliminare i suggerimenti della barra degli indirizzi su google chrome? Windows e Software 3
M Eliminare immagini da directory / *dal database fatto! PHP 2
K eliminare il carriage return Javascript 4
S Problema nell'eliminare un'immagine PHP 2
felino Eliminare stringa compresa tra due tags PHP 4
Creatt Eliminare macchine in centos Linux e Software 2
filippino Eliminare lo sfondo di una foto Photoshop 1
D [VB.NET] Eliminare Cartella e sottocartelle TRAMITE FTP .NET Framework 1
D Eliminare voce da campo db Classic ASP 5

Discussioni simili