eliminare un record grazie a PHP

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Salve ragazzi,
nella mia modesta area di amministrazione estraggo il nome delle immagini dal database per poi visualizzarle con il tag img in questo modo:
PHP:
<?php   
			$result = mysql_query("SELECT * FROM img_home")or die(mysql_error()); 
    				if(mysql_num_rows($result)>0){ 
        				while ($row = mysql_fetch_array($result)) { 
               	?>  <img src="../img/<?php echo $row ['nome_foto'] ?>" alt="<?php echo $row ['nome_img'] ?>" />	<br/>
                <?php 
					if(!isset($_POST['submit'])) { 
               echo"<p><input type='button' name='elimina' value='elimina' ></p>";
					} else {
					mysql_query("DELETE * FROM img_home WHERE id = $ID")or die(mysql_error());	
					}
				
        }
	} 
	?>

Il punto è che per ogni immagine vorrei aggiungere un bottone elimina per rimuovere l'immagine e il relativo record dal database. Ho provato a buttar giù qualche riga di codice ma inutilmente. Vi ringrazio dell'aiuto
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
io farei cosi, tutto in una stessa pagina
PHP:
<?php
if(isset($_GET['id'])){
	$id_del=$_GET['id'];
	if(is_int($id_del)){
		$q="DELETE FROM img_home WHERE id=$id_del";//verifica come si chiama il campo dell'id dell'immagine
		if(mysql_query($q)){
			$avviso="eliminata l'immagine con id= $id_del<br>";
		}else{
			$avviso="non è stato possibile eliminare l'immagine con id= $id_del<br />";
		}
		echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
	}
}

//.... 
$result = mysql_query("SELECT * FROM img_home")or die(mysql_error()); 
if(mysql_num_rows($result)>0){ 
	while ($row = mysql_fetch_array($result)) {
 		echo "<img src=\".../img/".{$row ['nome_foto']}."\" alt=\"".{$row ['nome_img']}."\" /> ";
		echo "<a href=\"?id=".{$row ['id_foto']}."\ onclick=\"return(confirm('stai eliminando  ".{addslashes($row ['nome_foto'])}." CONFERMA'))>DEL</a><br />";//verifica come si chiama il campo dell'id dell'immagine
    } 
}
//....
?>
ti ho messo l'alert confirm perche si deve essere sicuri quando si elimina
prova e guarda se funzia, posso essermi dimenticato di qualche apice

p.s.
nll'conffirm ho messo addslashes perche se il nome contine degli apostrofi (apici) js fa casino
poi con i css puoi abbellire DEL
inoltre cerca di evitare di entrare/uscire da php
 

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Intanto grazie per la cortesia cmq si ho dei problemi con questi due echo.. Potrei risolverli uscendo dal php però aspetto un tuo suggerimento visto che mi sconsigliavi di entrare ed uscire :)
Ho notato inoltre che ce un campo id_foto che non ho inserito nel DB. Non è sufficiente l'ID generico?


PHP:
 echo "<img src=\"../img/".{$row ['nome_foto']}."\" alt=\"".{$row ['nome_img']}."\" /> ";
        echo "<a href=\"?id=".{$row ['id_foto']}."\ onclick=\"return(confirm('stai eliminando  ".{addslashes($row ['nome_foto'])}." CONFERMA'))>DEL</a><br />";//verifica come si chiama il campo dell'id dell'immagine
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
che tipo di problemi? comunque verifico forse ho saltato o messo in più qualche apice
guarda che i nomi (come le etichette del vino) contano poco, l'importante è il contenuto.
io l'ho chiamato id_foto perchè non sapevo che l'avevi chiamato tu, se l'hai chiamato semplicemente id metti id, l'importante è che sia l'indicativo univoco del record
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi ero dimenticato questo
echo "<a href=\"?id=".{$row['id_foto']}."\" onclick=\"return(confirm('stai eliminando ".{addslashes($row['nome_foto'])}." CONFERMA'))>DEL</a><br />";

ora "dovrebbe" funziare
 

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
ok perfetto! cmq mi da ancora problemi di apici..
PHP:
echo "<img src=\"../img/".{$row ['nome_foto']}."\" alt=\"".{$row ['nome_img']}."\" /> ";
echo "<a href=\"?id=".{$row['ID']}."\" onclick=\"return(confirm('stai eliminando ".{addslashes($row['nome_foto'])}." CONFERMA'))>DEL</a><br />";
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
strano non ne vedo.
prova a sostituire i \" con apici semplici '
pero se noti anche quello che hai scrttto non da errori (i colori sono giusti)
 

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
ho risolto così!
PHP:
while ($row = mysql_fetch_array($result)) {
	?> 
    <img src="../img/<?php echo $row ['nome_foto'] ?>" alt="<?php echo $row ['nome_img'] ?>" />	
    
	<?php 
echo "<a href='?id=".$row['ID']." onclick='return(confirm(\'stai eliminando ".addslashes($row['nome_foto'])." CONFERMA'))>cancella</a><br />";  //verifica come si chiama il campo dell'id dell'immagine  

    }

cmq quando clicco su cancella l'URL alla fine si aggiorna cosi senza cancellar nulla: ?id=1 onclick=
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto mancano i ; dopo le istruzioni php è c'è uno \ in più prima dopo confirm( e prima di 'stai... e (mea culpa) mancava un apice dopo CONFERMA))
poi prova a scriverla così
PHP:
<?php
//......
while ($row = mysql_fetch_array($result)) {
?> 
<img src="http://forum.mrwebmaster.it/img/<?php echo $row ['nome_foto']; ?>" alt="<?php echo $row ['nome_img']; ?>" />    
    
<a href="?id=<?php echo $row['ID']; ?>" onclick='return(confirm('stai eliminando <?php echo $row ['nome_img']; ?> CONFERMA'))'>cancella</a><br />  
<?php 
}
//.....
?>
inoltre si il campo si chiama ID
correggi la
PHP:
<?php
//....
$q="DELETE FROM img_home WHERE id=$id_del";
//....
?>
in
PHP:
<?php
//....
$q="DELETE FROM img_home WHERE ID=$id_del";
//....
?>

ricorda i nomi dei campi devono essere riportati uguali comprese maiscole/minuscole

edit
mi sono dimenticato l'addslshes nell'alert
 
Ultima modifica:

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
l'ID l'avevo già messo maiuscolo :)

PHP:
while ($row = mysql_fetch_array($result)) {
?> 
<img src="../img/<?php echo $row ['nome_foto']; ?>" alt="<?php echo $row ['nome_img']; ?>" />    
    
<a href="?id=<?php echo $row['ID']; ?>" onclick='return(confirm('stai eliminando <?php echo $row ['nome_img']; ?> CONFERMA'))'>cancella</a><br />  
<?php

adesso con questa modifica l'url si aggiorna così ?id=1 è scomparso l'onclick però non cancella il record...
Riuscirò a farcela! :hammer:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
metti un var_dump per vedere se e come il get viene trasmesso

PHP:
<?php
if(isset($_GET['id'])){
    var_dump($_GET['id']);
	$id_del=$_GET['id'];
	/*
	se il var_dump ti da il numero del record che hai cliccato
	e non elimina ancora prova a mettere
	$id_del=0+$_GET['id'];
	oppure
	$id_del=(int)($_GET['id']);
	*/
	if(is_int($id_del)){
        $q="DELETE FROM img_home WHERE id='$id_del'";
//.....
?>
coumunque verifica di aver scritto tutto bene perchè e lo stesso sistema che uso io
 

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
grazie a tutti del supporto! ho risolto e posto il codice se potesse tornar utile ad altri

PHP:
<?php

if(isset($_GET['id'])){
    $id_del=(int) $_GET['id'];
    
        $q="DELETE FROM img_home WHERE id= ".$id_del;//verifica come si chiama il campo dell'id dell'immagine
        if(mysql_query($q)){
            $avviso="eliminata l'immagine con id= $id_del<br>";
        }else{
            $avviso="non è stato possibile eliminare l'immagine con id= '$id_del'<br />";
        }
        echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
		
		header('Location: homepage.php ');
		
		
    
}

//Estrazione dati e generazione tabella 
$result = mysql_query("SELECT * FROM img_home")or die(mysql_error()); 
if(mysql_num_rows($result)>0){ 
    
    
    while ($row = mysql_fetch_array($result)) {
?> 
<img src="../img/<?php echo $row ['nome_foto']; ?>" alt="<?php echo $row ['nome_img']; ?>" />    
    
<a href="homepage.php?id=<?php echo $row['id']; ?>" onClick="return(confirm('stai eliminando <?php echo $row ['nome_img']; ?> CONFERMA'))">cancella</a><br />   
<?php 
}

} 
?>

Sbagliavo nell'ultimo ancoraggio e potevo saperlo solo io :D
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Mi trovo nell'impossibilità di eliminare un record nella tabella Database 1
asevenx [PHP] Eliminare record automaticamente dopo una certa data PHP 12
asevenx eliminare record da db attraverso link PHP 15
N eliminare file e record db PHP 4
P Eliminare record selezionati con checkbox PHP 1
X eliminare un record XML con ASP Classic ASP 1
S eliminare record database Javascript 3
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
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
Monital [PHP] Eliminare la Barra di caricamento file alla fine dell'esecuzione PHP 11
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
filippino Eliminare le barre scorrimento HTML e CSS 1

Discussioni simili