Problema nell'eliminare un'immagine

Soulfearor

Utente Attivo
16 Set 2014
54
0
6
Torino
www.serenagraficatorino.it
Salve a tutti, ho un problemino su questo script.
Ho creato un db con una query che carica il file e un'altra per eliminarlo. Il problema è che mi elimina il record ma non l'immagine associata, dove sbaglio?

Questo è il codice:

PHP:
<?php

include '../php/connessione.php';

// seleziona tutti i record dal db e li visualizza con i pulsanti "modifica" ed "elimina"
$query = mysqli_query($connessione, "SELECT * FROM template") or die(mysqli_error());
	if(mysqli_num_rows($query) == 0) {
		echo 'Non ci sono record';
	}
	else {
		while($risultato = mysqli_fetch_assoc($query)) {
			echo '
						' .$risultato['id'] .'
						' .'<img src="../template/ "'.$risultato['file'].'" ">' .'
						' .$risultato['descrizione'] .'
						<form action="" method="post">
							<input type="hidden" name="idnascosto" value="'.$risultato['id'].'">
							<input type="hidden" name="filenascosto" value="'.$risultato['file'].'">
							<button type="submit" name="elimina">Elimina</button>
							<button type="submit" name="modifica">Modifica</button>
						</form>
					<br>';
	}
}

if(isset($_POST['idnascosto'])) {$id = $_POST['idnascosto'];}
if(isset($_POST['filenascosto'])) {$file = $_POST['filenascosto'];}

// script che elimina un record
if(isset($_POST['elimina'])) {
	$query = mysqli_query($connessione, "DELETE FROM template WHERE ID = '$id'") or die(mysqli_error());	
	
	unlink('../template/"'.$file.'"');
	header ('location: ../cms/cms-template.php');
}

?>

Grazie :)
 
ho rivisto il tuo codice, corretto qualche errore soprattutto dovuto agli apici
e diviso (if / else) la parte "html" dalla parte "esecuzione"
poi non avendo mysql, ho arrangiato un'array ...
naturalmente provato ...
ciao
Marino
PHP:
<?php 

if(!empty($_POST))
{
  $id = $_POST['idnascosto'];
  $file = $_POST['filenascosto'];

  if(isset($_POST['elimina']))
  { 
//    $query = mysqli_query($connessione, "DELETE FROM template WHERE ID = '$id'") or die(mysqli_error());     

    $FileToDelete = '../template/'.$file;
    unlink($FileToDelete); 
    header ('location: ../cms/cms-template.php'); 
  } 
}
else 
{
  $mySQL = array();

  $mySQL[0] = array
  (
    'id'		=> '111',
    'file'		=> 'file1 11.txt', // volutamente con spazio
    'descrizione'	=> 'descr111'
  );
  $mySQL[1] = array
  (
    'id'		=> '222',
    'file'		=> 'file222.txt',
    'descrizione'	=> 'descr222'
  );

//  while($risultato = mysqli_fetch_assoc($query))
  while(list($chiave, $risultato)=each($mySQL))
  { 
    echo 
'<form action="" method="post">'
.$risultato['id']
.' -- '
.'<img src="../template/'.$risultato['file'].'" >'
.' -- '
.$risultato['descrizione']
.'<input type="hidden" name="idnascosto" value="'.$risultato['id'].'">
<input type="hidden" name="filenascosto" value="'.$risultato['file'].'">
<button type="submit" name="elimina">Elimina</button>
<button type="submit" name="modifica">Modifica</button>
</form> 
<br>'; 
  }
}
?>
 
Ultima modifica:
Ciao marino51, grazie per la risposta :)
Ci sono alcune cose che non capisco del tuo script in quanto non sono troppo pratico con il PHP, però grazie al tuo esempio ho sistemato il mio .. avevo fatto alcuni errori di sintassi . eheh come sempre ^^

Ti posto l'esempio corretto:
PHP:
<?php

include '../php/connessione.php';

$query = mysqli_query($connessione, "SELECT * FROM post_produzione") or die(mysqli_error());
	if(mysqli_num_rows($query) == 0) {
		echo 'Non ci sono record';
	}
	else {
		while($risultato = mysqli_fetch_assoc($query)) {
			echo '<div class="campovis" style="width:5%;">' .$risultato['id'] .'</div>
				<div class="campovis" style="width:15%;"><img src="http://forum.mrwebmaster.it/post-produzione/' .$risultato['file'] .'" width="100px"></div>
				<div class="campovis" style="width:60%;">' .$risultato['descrizione'] .'</div>
				<form action="" method="post">
					<input type="hidden" name="idnascosto" value="'.$risultato['id'].'">
					<input type="hidden" name="filenascosto" value="'.$risultato['file'].'">
					<div class="campovis" style="width:20%;"><button type="submit" name="elimina">Elimina</button>
					<button type="submit" name="modifica">Modifica</button></div>
				</form> 
				<div style="clear:both;"></div>'; 
	}
}


if(isset($_POST['idnascosto'])) {$id = $_POST['idnascosto'];}
if(isset($_POST['filenascosto'])) {$file = $_POST['filenascosto'];}

if(isset($_POST['elimina'])) {
	$query = mysqli_query($connessione, "DELETE FROM post_produzione WHERE ID = '$id'") or die(mysqli_error());	
	$FileToDelete = '../post-produzione/'.$file;
	unlink($FileToDelete);
	header ('location: ../cms/cms-post-produzione.php');
}
?>

Alla prossima, buona giornata :D
 

Discussioni simili