Delete foto in database e cartella

  • Creatore Discussione Creatore Discussione Alex_70
  • Data di inizio Data di inizio

Alex_70

Utente Attivo
13 Nov 2018
371
14
18
HELL
Salve a tutti

ho trovato in giro uno script per cancellare le foto sia dal database che dalla cartella

la galleria che ho nel database e' strutturata cosi

actor_id_fk relazionato con actor_id della tabella actor

gallery_id e' incrementale, quindi un actor ha molte foto

gallery.png

con questo comando sql trovo tutte le foto dell'actor nella tabella gallery

SQL:
SELECT * FROM gallery WHERE actor_id_fk = 40

gallery2.png


e con questo cancello

SQL:
DELETE FROM gallery WHERE gallery.gallery_id = 880

lo script qui sotto non funziona, non trova l'id e la path delle foto

inoltre la variabile $nome per formare il percorso e' presa dalla tabella actor
 
Ultima modifica:
piccoli progressi, sono riuscito a cancellare l'immagine nel database associata all'id,
resta il problema come cancellarla dalla cartella :(



dovrei prelevare il campo nome associato alla variabile $nome che si trova nella tabella separata actor
senza questo non viene ricostruito il path e non trova il file

PHP:
$createDeletePath = "../image_upload/actor/uploads/$nome ($actor_id)/".$getIamgeName;

PHP:
 $imgWithPath = "../image_upload/actor/uploads/$nome ($actor_id)/".$row['photo'];

suggerimenti? :rolleyes:
 
Ultima modifica:
ciao Tommy,
unlink e' nel codice,
il problema che devo prelevare un campo da un'altra tabella, senza di quello non funziona
adesso ricevo questo perche' non trova il percorso

Warning: unlink(../image_upload/actor/uploads/ (40)/Alex_72efd9d45f9efb3257880f4cb714fcbf.jpg): No such file or directory in E:\OpenServer\domains\localhost\cinema\crud\gallery_delete.php on line 32

manca la variabile $nome per ricostruire il percorso, cosi

Alex (40)/Alex_72efd9d45f9efb3257880f4cb714fcbf.jpg

ci vorrebbe un'altra query, ma non so come fare, ricevo errore

SQL:
$sql = "select * from actor WHERE actor_id=". $actor_id;

e li si trova questo

$nome= $row ['nome'];
 
non capisco, neanche questa funziona, non riesce a caricare la variabile $nome :rolleyes:

PHP:
$actor_id = $_GET["id"];
    
    
    $sql = "
select *
from
actor a
inner join
gallery g
on
g.actor_id_fk = a.actor_id
where
a.actor_id=". $actor_id;
    
    $nome= $row ['nome'];

PHP:
$createDeletePath = "../image_upload/actor/uploads/$nome ($actor_id)/".$getIamgeName;
 
Mi sa che ti manca il
PHP:
while($row=mysqli_fetch_assoc($sql)){
$nome=$row['nome'];
}
$sql = " select * from actor a inner join gallery g on g.actor_id_fk = a.actor_id where a.actor_id=". $actor_id; $nome= $row ['nome'];
PHP:
$sql = mysqli_query($conn, "
select *
from
actor a
inner join
gallery g
on
g.actor_id_fk = a.actor_id
where
a.actor_id='$actor_id'");
   
while($row=mysqli_fetch_assoc($sql)){
$nome=$row['nome'];
}
 
ciao marino,
non va

dopo la query e' presente questo

PHP:
$rs = mysqli_query($conn, $sql);

se inserisco il codice sopra ricevo errore


PHP:
<?php
   
    require_once("cineteca.include");

    if(!$conn)
    {
        die(mysqli_error());
    }
   
    $actor_id = $_GET["id"];
   
   
   
    $sql = "
select *
FROM
actor a
INNER JOIN
gallery g
on
g.actor_id_fk = a.actor_id
WHERE
a.actor_id=". $actor_id;
   
   
   
    $rs = mysqli_query($conn, $sql);
   
    $nome= $getRow ['nome'];
   
   
    if(isset($_GET['id']))
    {
       
        $selectSql = "
       
        select * from gallery WHERE actor_id_fk = ".$_GET['id'];
        $rsSelect = mysqli_query($conn,$selectSql);
        $getRow = mysqli_fetch_assoc($rsSelect);
       
       
       
        $getIamgeName = $getRow['photo'];
       
       
       
       
        $createDeletePath = "../image_upload/actor/uploads/$nome ($actor_id)/".$getIamgeName;


codice completo

 
ciao Tommy,
se metto il fetch assoc dopo mysqli_query ricevo errore, questo perche' dopo if(isset($_GET['id'])) e' presente un altro fetch assoc

Codice:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, string given in E:\OpenServer\domains\localhost\cinema\crud\gallery_delete.php on line 29

Warning: unlink(../image_upload/actor/uploads/ (40)/): No such file or directory in E:\OpenServer\domains\localhost\cinema\crud\gallery_delete.php on line 50

questo

PHP:
$getRow = mysqli_fetch_assoc($rsSelect);
 
La parte dopo l'isset non c'entra, avevi postato la query che c'è sopra all'isset, e in quella query manca il fetch assoc
 
modificato cosi, ma non funziona

PHP:
$actor_id = $_GET["id"];
  
  
  
    $sql = "
select *
FROM
actor a
INNER JOIN
gallery g
on
g.actor_id_fk = a.actor_id
WHERE
a.actor_id=". $actor_id;
  
  
  
    $rs = mysqli_query($conn, $sql);
  
    while($row=mysqli_fetch_assoc($sql)){
$nome=$row['nome'];
}
  
  
    if(isset($_GET['id']))

line 29 e'

Codice:
while($row=mysqli_fetch_assoc($sql)){

sshot-1.png


inoltre se clicco su Delete image ricevo un altro errore

line 122 e' un altro fetch assoc che stranamente funziona e visualizzo l'immagine

Codice:
while($row = mysqli_fetch_assoc($rs))

sshot-2.png
 
Devi metterci $rs non $sql...


se metto $rs e vado sulla pagina ecco cosa succede

sshot-3.png


non visualizzo il preview ed inoltre una immagine e' stata cancellata dal database

vado un'altra volta ed e' sparita l'altra immagine nel database

praticamente cancella a ogni apertura :mad:
 
cinema.php e' la scheda attori da li apro lo script
gallery_delete.php

il funzionamento dello script dovrebbe essere semplice, cancella le foto selezionate dal database e poi dalla cartella
invece e' diventato complicato :rolleyes:
 
Io continuo a vedere questo
PHP:
$rs = mysqli_query($conn, $sql);
    
    while($row=mysqli_fetch_assoc($sql)){
$nome=$row['nome'];
}
Non può funzionare se non metti $rs al posto di $sql....
 
Io continuo a vedere questo
PHP:
$rs = mysqli_query($conn, $sql);
 
    while($row=mysqli_fetch_assoc($sql)){
$nome=$row['nome'];
}
Non può funzionare se non metti $rs al posto di $sql....

ho messo $rs e cancella le immagini automaticamente ad ogni apertura della pagina :p

comportamento strano

edit: cancella automaticamente sia dal database che nella cartella, il menu' di scelta viene saltato :rolleyes:
 

Discussioni simili