[PHP Unlink]

Marco Candian

Nuovo Utente
26 Ott 2014
33
0
6
Buongiorno a tutti,

vi vorrei esporre il mio problema: ho uploadato delle immagini memorizzando l'indirizzo nella tabella mysql "1_album", ora vorrei poter cancellare solo le immagini legate al relativo utente.

Questo è il codice che utilizzo:

PHP:
//conto i record nella tabella 1_album per creare un ciclo che li cancella tutti
$conta = "SELECT COUNT(*) from 1_album WHERE i_art_id = '$art_id'";
$conto = @mysql_query ($conta);
$tot = @mysql_fetch_array ($conto);
$sum2 = $tot['conto'];


for ($mul = 0; $sum2 <= $mul; $mul++) {
  // recupero l'id dell'ultimo articolo inserito per abbinargli l'immagine nella tabella 1_album
$ctrl_img = ("SELECT * FROM 1_album WHERE i_id_user='$i_id_user' ORDER BY i_id_user desc limit 1");
$result_ctrl_img  = @mysql_query ($ctrl_img) or die (mysql_error());
$row_ctrl_img  = mysql_fetch_array($result_ctrl_img);
$i_immagine = $row_ctrl_img ['i_immagine'];
$i_thumb = $row_ctrl_img ['i_thumb'];


if (unlink($i_immagine)) {
  echo '';
}else{
  echo '';
}

if (unlink($i_thumb)) {
  echo '';
}else{
  echo '';
} 
//cancello il record relativo all'immagine eliminata
$delete_album= ("DELETE FROM 1_album WHERE i_id_user='$i_id_user' ORDER BY i_id_user desc limit 1");
$result_delete_album = @mysql_query ($delete_album) or die (mysql_error());

}

La pagina cancella effettivamente i file, ma poi continua come se il ciclo non fosse terminato.
Cosa sbaglio?
Grazie mille!
Marco
 
Ultima modifica:

Marco Candian

Nuovo Utente
26 Ott 2014
33
0
6
Non avevom postato un pezzo di codice...ho integrato....grazie per la risposta...mi sembra di averla chiusa dopo l'ultima query.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
secondo me sbagli il ciclo for
se provi questo script come hai fatto tu
PHP:
<?php
//....
$sum2=5;//ipotizziamo
echo "$sum2 <br>";
for ($mul = 0; $sum2 <= $mul; $mul++) {   
    echo "$mul <br>";
}
//....
?>
non ti da nulla (a parte l'echo della variabile iniziale)
questo invece cicla 5 volte
PHP:
<?php
//.....
$sum2=5;//ipotizziamo
echo "$sum2 <br>";
for ($mul = 0; $mul < $sum2; $mul++) {   
    echo "$mul <br>";
}
//....
?>
prova a invertire
 

Marco Candian

Nuovo Utente
26 Ott 2014
33
0
6
Ho risolto....grazie mille a tutti!
Ho invertito il controllo delle variabili sul SELECT COUNT() e spezzato il codice rimandando alla pagina successiva l'eliminazione dei record nelle tabelle con la query DELETE FROM.

Posto il codice:

PHP:
// recupero l'id dell'ultimo articolo inserito per abbinargli l'immagine
$ctrl_login = ("SELECT * FROM 1_Articoli WHERE art_email='$email' order by art_id desc limit 1");
$result_ctrl_login = @mysql_query ($ctrl_login) or die (mysql_error());
$row_ctrl_login = mysql_fetch_array($result_ctrl_login);
$art_id = $row_ctrl_login['art_id'];
$art_id_user = $row_ctrl_login['art_id_user'];
$art_immagine = $row_ctrl_login['art_immagine'];
$art_thumb = $row_ctrl_login['art_thumb'];

if (unlink($art_immagine)) {
  echo '';
}else{
  echo '';
}

$art_thumb = $row_ctrl_login['art_thumb'];
if (unlink($art_thumb)) {
  echo '';
}else{
  echo '';
}

//conto i record nella tabella 1_album per creare un ciclo che li cancella tutti
$conta = "SELECT COUNT(*) from 1_album WHERE i_art_id = '$art_id'";
$conto = @mysql_query ($conta);
$tot = @mysql_fetch_array ($conto);
$sum2 = $tot['conto'];


for ($mul = 0; $mul < $sum2; $mul++) {
// recupero l'id dell'ultimo articolo inserito per abbinargli l'immagine nella tabella 1_album
$ctrl_img = ("SELECT * FROM 1_album WHERE i_id_user='$i_id_user' ORDER BY i_id_user desc limit 1");
$result_ctrl_img  = @mysql_query ($ctrl_img) or die (mysql_error());
$row_ctrl_img  = mysql_fetch_array($result_ctrl_img);
$i_immagine = $row_ctrl_img ['i_immagine'];
$i_thumb = $row_ctrl_img ['i_thumb'];
$i_id_user = $row_ctrl_img ['i_id_user'];

if (unlink($i_immagine)) {
  echo '';
}else{
  echo '';
}

if (unlink($i_thumb)) {
  echo '';
}else{
  echo '';
}  

}

}else{
  //controllo sessione con esito negativo
  @header("Location: ../0_login_iscrizioni/0_form_login.php");
}
 
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
scusa, ma per capire. immagino che tu abbia una tabella (1_album) fatta circa in questo modo
Codice:
id int(xy) autoincrement primarykey
i_id_user int(xy)
i_immagine varchar(xy)
i_thumb varchar(xy)
//e forse altri campi
tu vuoi per un determinato utente (caratterizzato da i_id_user) eliminare tutte le sue immagini e i record relativi su 1_album, è così?
se è così perche fai tutto quell'ambaradan?
basta qualcosa di più semplice
PHP:
<?php
//dati di connessione
$i_id_user=$_POST['user']; //immagino che in qualche modo tu determini l'user da eliminare, da un form?
$query="SELECT * FROM 1_album WHERE i_id_user=$i_id_user";//nota se i_id_user è un itero NON devi mettere gli apici
$ris=mysql_query($query);
while($riga=mysql_fetch_assoc($ris)){
    $i_immagine = $riga['i_immagine'];
    $i_thumb = $riga['i_thumb'];
    //prima del'unlink converrebbe verificare se i file immagini esistono
    if(unlink($i_immagine)){
        echo "$i_immagine eliminata <br>";
    }else{
        echo "$i_immagine eliminazione non riuscita <br>";
    }
    if(unlink($i_thumb)){
        echo "$i_thumb eliminata <br>";
    }else{
        echo "$i_thumb eliminazione non riuscita <br>";
    }
}//e con questo hai eliminato le immagini
//ora eliminiamo tutti i record di $i_id_user
$query="DELETE FROM 1_album WHERE i_id_user=$i_id_user";
if(mysql_query($query)){
    echo "tutti i recordi di $i_id_user sono stati eliminati<br>";
}else{
    echo "errore<br>";
}
//....
?>
poi un paio di suggerimenti
abbandona le vecchie istruzioni php mysql_... deprecate e passa alle nuovie mysqli_...
non usare i silent @, gli errori non vanno nascosti, ma eliminati

poi quando posti del codice racchiudilo negli appositi bccode (riga formattazione del post "inserisci" -> "codice" e scegli code o html o php
 

Marco Candian

Nuovo Utente
26 Ott 2014
33
0
6
Grazie mille! Non sono un esperto e sto studiando...per il momento mi "arrangio" come possso e con dreamweaver...
Ancora Grazie!
Marco
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Cancellare file con unlink usando le wildcards? PHP 1
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3

Discussioni simili