cancellare una immagine dal database

maxxjo

Utente Attivo
27 Apr 2013
56
0
0
Ciao!
ho creato un form.php dove vado a fare l'upload delle mie foto sul database, con una pagina di richiamo in php che mi mostra le foto inserire, fino a qui tutto ok.
Adesso vorrei creare una pagina php dove posso cancellare le foto che ho inserito sul database, potete darmi un aiuto?

Il mio database ha le seguenti tabelle:
nome database:gallery
nome tabelle: tabella_files

id_file
nome_file
tipo_file
dati_file
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto dipende da quante foto hai, se sono poche potresti semplicemente fare così
PHP:
<?php
//dati di connessione al db
if(isset($_GET['id']) && is_numeric($_GET['id'])){
	$id=$_GET['id'];
	$imm=$_GET['imm'];
	//elimino dal db
	$query=mysql_query("DELETE FROM tabella_files WHERE id_file=$id");
	//e elimino fisicamente il file immagine
	unlink($imm);
	//e torni all'elenco
	echo "eliminato file $imm<br />"
	echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}
$query=mysql_query("SELECT * FROM tabella_files ORDER BY nome_file");
//eventuale verifica se ci sono immagini
$path="cartella/";//il percorso se necessario
while($riga=mysql_fetch_array($query)){
	$id=$riga['id_file'];
	$imm=$path.$riga['nome_file'];//il nome è completo? es pinco.png?
	//hai anche di ogni immagine le tumb?
	//mostri l'immagine
	echo "<a href=\"?id=$id&imm=$imm\"><img src=\"$imm\"></a><br />";
	//trattandosi di eliminazione ti conviene mettere un confirm
}
?>
se sono molte alla prossima
 

maxxjo

Utente Attivo
27 Apr 2013
56
0
0
info su come azzerare l'ID

Ho risolto facendo questo..
L'unica cosa che dovrei fare adesso e quello di azzerare l'id quando riparto ad inserire delle nuove foto, date che richiamo le foto su di una pagina tramite id con il numero partendo da 1.

PHP:
if($_POST)
{
	$ids = isset($_POST['id']) ? $_POST['id'] : array();
	elimina_record($ids);
}
elseif(isset($_GET['id']))
{
	elimina_record(array($_GET['id']));
}
else
	mostra_lista();

function mostra_lista()
{
	// mostro un eventuale messaggio
	if(isset($_GET['msg']))
		echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';

	// preparo la query
	$query = "SELECT * FROM tabella_files";

	// invio la query
	$result = mysql_query($query);

	// controllo l'esito
	if (!$result) {
		die("Errore nella query $query: " . mysql_error());
	}

	echo '
	<form name="form1" method="post" action="">
	<table border="1">
		<tr>
			<th>&nbsp;</th>
			<th>Nome</th>
			<th>&nbsp;</th>
		</tr>';

	while ($row = mysql_fetch_assoc($result))
	{
	
// in questa stringa devi inserire il titolo per visualizzare il nome da cancellare
$nome = htmlentities($row['nome_file']);

		// preparo il link per la modifica dei dati del record
		$link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];

		echo "<tr>
				<td><input name=\"id[]\" type=\"checkbox\" value=\"$row[id]\" /></td>
				<td>$nome</td>
				<td><a href=\"$link\">elimina</a></td>
			</tr>";
	}

	echo '</table>
		<br />
		<input type="submit" name="Submit" value="Elimina record selezionati" />
		</form>';

	// libero la memoria di PHP occupata dai record estratti con la SELECT
	mysql_free_result($result);

	// chiudo la connessione a MySQL
	mysql_close();
}

function elimina_record($ids)
{
	// verifico che almeno un id sia stato selezionato
	if(count($ids) < 1)
	{
		$messaggio = urlencode("Nessun record selezionato!");
		header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
		exit;
	}

	// per precauzione converto gli ID in interi
	$ids = array_map('intval',$ids);

	// creo una lista di ID per la query
	$ids = implode(',',$ids);

	// preparo la query
	$query = "DELETE FROM tabella_files WHERE id_file IN (id_file)";

	// invio la query
	$result = mysql_query($query);

	// controllo l'esito
	if (!$result) {
		die("Errore nella query $query: " . mysql_error());
	}

	// conto il numero di record cancellati
	$num_record = mysql_affected_rows();

	// chiudo la connessione a MySQL
	mysql_close();

	$messaggio = urlencode("Numero record cancellati: $num_record");
	header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se l'id, come penso, è una chiave primaria autoincrement non ti conviene farlo e tra l'altro non serve.

p.s.
racchiudi il codice tra gli appositi tag (seconda riga formattazione post, ultime 3 iconcine nell'ordine CODE, HTML, PHP)

dimenticavo:
e non elimini anche l'immagine?
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
Cosina Cancellare una specifica email da un elenco in un file txt PHP 3
S Cancellare una riga MYSQL PHP 1
Cosina [PHP] Cancellare una riga da un file di testo in base al nome PHP 2
Cosina [PHP] Cancellare una riga da un file txt in base alla data PHP 1
trattorino [PHP] sql aggiungere dato in una tabella senza cancellare contenuto PHP 6
Trapano [PHP] Cancellare file da una cartella.... PHP 5
JackIlPazzo Sostituire una riga specifica in un file di testo senza cancellare il rimanente PHP 13
O Cancellare dati da una tabella mysql in modo automatico PHP 2
D Cancellare una Stringa di testo da un file txt PHP 8
C cancellare un elemento in un array memorizzato in una sessione PHP 12
IImanuII Cancellare una cartella piena PHP 14
novello88 [MySQL] Delete Record (cancellare una riga) MySQL 1
B come cancellare i file da una cartella PHP 24
L php file di testo(db) cancellare una stringa Database 0
L php file di testo(db) cancellare una stringa PHP 1
G [MS Access] Cancellare i dati da una maschera MS Access 11
E voglio cancellare una mia discussione chiusa Discussioni Varie 2
LaFata Cancellare una riga in un file di testo PHP 5
matteoraggi Come cancellare le colonne di wordpress WordPress 0
P Mysql lento a cancellare MySQL 1
G Con Microsoft Outlook 2016 come si possono cancellare le mail doppie? Posta Elettronica 0
L conferma prima di cancellare con javascript e php PHP 16
H cancellare avatar in codice PHP PHP 2
M [PHP] Cancellare singolo file da cartella su server PHP 3
A [PHP] Cancellare riga database a scelta dell'utente PHP 2
C Cancellare un elemento del DOM jQuery 4
D [PHP] CANCELLARE MAILPLAN PHP 2
ste80 [PHP] cancellare/aggiornare record DB PHP 24
K [PHP] Cancellare e Stampare tabella PHP 3
felino [PHP] Cancellare directory con file al suo interno PHP 2
A Cancellare righe vuote in mysql Database 4
L Cancellare web site Weebly CMS (Content Management System) 0
G Pagina facebook da cancellare Social Media Marketing 4
M Cancellare record a tempo con formato data mktime PHP 7
E cancellare immagini che non sono nel db mysql PHP 1
max_400 Cancellare le prime 3 righe di un file PHP 4
voldemort Cancellare un file con 0 byte Java 1
A Cancellare record su più tabelle con PHP PHP 27
filippino Come cancellare dati da un database MySQL? Database 1
IImanuII Cancellare righe doppie e ciclo. PHP 2
K Help cancellare manualmente plugin WordPress 2
A cancellare TUTTI i cookies PHP 2
S aiuto non so cancellare i dati: PHP 1
F 2 Div uniti, cancellare bordo. HTML e CSS 1
ivarello Cancellare parole dopo ";" PHP 4
M cancellare del testo in sql PHP 1
F Devo cancellare un sito web su Google SEO e Posizionamento 2
D Non riesco a cancellare un href >.< Javascript 6
valient13 aprire un alert per cancellare Javascript 1
D Come cancellare Internet Explorer 8? Windows e Software 2

Discussioni simili