Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Controllo foto su db

  1. #1

    Controllo foto su db

    Un saluto a tutti oggi è giornata nera non riesco a fare delle stupidate poi mi viene il nervoso ! Allora ho uno script che mi elimina una news passata per GET dal database e anche la foto correlata alla news è sempre passata per GET (es. foto1.jpg). Ora però devo riuscire a controllare se la foto della news serve per altre news oppure solo per questa, perchè se serve non bisogna cancellarla altrimenti si. Lo script che uso per cancellare tutto è :

    codice:
    $delete = mysql_query("DELETE FROM news WHERE idnews=$_GET[id]",$db);
    $file=$_GET[file];
    	$url="../moduli/news/img/$file";
    			$result = unlink($url);
    			?>
    Spero di essermi spiegato in poche parole se l'immagine serve ancora devo cancellare solo la news altrimenti in caso contrario devo cancellare news + foto.

    P.S. il db è strutturato con la tabella che si chiama news, poi le foto sono nel campo foto

  2. #2
    Ho provato così ma non funziona perchè ????

    codice:
    $delete = mysql_query("DELETE FROM news WHERE idnews=$_GET[id]",$db);
    $file=$_GET[file];
    
    $result = mysql_query("SELECT foto FROM news WHERE idnews != $_GET[id] ",$db);
    while ($record=mysql_fetch_array($result)){
    if ($record['foto'] = $file){
    ?>
    <SCRIPT>
    	window.opener.location.reload(); window.close();</SCRIPT>
    <?
     exit();
     } }
    
    	$url="../moduli/news/img/$file";
    			$result = unlink($url);
    			?>
    Praticamente la prima riga elimina la news, poi per quanto riguarda la foto la 4° riga va a prendere nel db tutte le foto lasciando stare la news che stiamo eliminando ora (ciò dovrebbe farlo con idnews != &_GET[id] )poi col ciclo while se trova una corrispondenza finisce l'esecuzione dello script e chiude la finestra altrimenti se nessunaltra news utilizza quell'immagine viene eliminata.
    Il problema è che caricando una foto solo su una news lo script mi cancella solo la news e la foto la lascia sulla cartella(perchè secondo me nel ciclo while mi ci mette anche la news che sto cancellando quindi $record['foto'] = $file risulterà sempre vera.

  3. #3
    nessuno può aiutarmi ????

  4. #4
    Io andrei a cercarmi gli id dei record che hanno quella foto nella colonna apposita.

    Codice PHP:

    $delete 
    mysql_query("DELETE FROM news WHERE idnews=$_GET[id'",$db);
    $file=$_GET[file];

    $result mysql_query("SELECT id FROM news WHERE foto = 'nomefoto' AND idnews != $_GET[id] ",$db);

    if (!
    $query) {
    // la query NON torna per cui non c'è neanche un record che condivide la foto
    // 
        
    $url="../moduli/news/img/$file";
        
    $result unlink($url);

    Non ho provato lo script, ma dovrebbe andare!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Vabé.... ho fatto un disastro col "copia incolla".
    Ti posto il codice senza Orrori!

    Codice PHP:
    $delete mysql_query("DELETE FROM news WHERE idnews=$_GET['id']"$db); 
    $file=$_GET['file']; 

    $result mysql_query("SELECT id FROM news WHERE foto = 'nomefoto' AND idnews != $_GET['id'] ",$db); 

    if (!
    $query) { 
    // la query NON torna per cui non c'è neanche un record che condivide la foto 
    // 
        
    $url="../moduli/news/img/$file"
        
    $result unlink($url); 

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Ciao ho provato ma da questo errore :

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\urbania\Admin\cancellanews.php on line 6


    causa ?????

  7. #7
    :master: Sarebbe da perderci tempo.
    A cosa corrisponde nel tuo script la linea 6???

    Vabè. Intanto cerca di vedere se sono le query che danno errore.

    Codice PHP:
    $delete mysql_query("DELETE FROM news WHERE idnews=$_GET['id']"$db) OR DIE("Errore Numero: ".mysql_errno(). 
    Testo Errore: "
    .mysql_error()."<hr />"); 
    Naturalmente, devi copiare il il DIE in entrambe le mysql_query().

    Ad ogni modo, potrebbe esserci un semplice errore di sintassi.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Ah.... aspetta: la non uguaglianza in SQL non si segna con !=.
    Codice PHP:
    $result mysql_query("SELECT id FROM news WHERE foto = 'nomefoto' AND idnews <> $_GET['id'] ",$db); 
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    L'errore non è quello... a me anche con != funziona...

    E comunque, anche senza clausola WHERE la seconda query dovrebbe andare, perchè di fatto la riga con id $_GET['id'] è appena stata cancellata.

    L'errore era questo:
    if ($record['foto'] = $file){
    devi sostituirla con questo:
    if ($record['foto'] == $file){
    Ciao!

  10. #10
    Me lo immaginavo che era una cavolata accidenti !!! Ma che differenza ce tra = e == cioè uguale e identico ??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.