Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    aggiornamento immagini solo se campo file pieno

    Ciao, ho una pagina dove l'utente può aggiornare alcune foto se lo vuole, il mio problema è che se decide di aggiornare solo 1 foto è costretto a selezionare nel campo file anche tutte le altre altrimenti la query aggiorna con campo null.
    Avrei quindi bisogno di trovare qualcosa che faccia in modo che se nel campo file non c'è nulla lasci nel db l'immagine precedente.

    questa è la pagina che esegue l'update:


    Codice PHP:
    $uploaddir 'immaginisito/';
     
    $uploadfile1 $uploaddir basename($_FILES['immaginepromozioni1']['name']);
     
    $uploadfile2 $uploaddir basename($_FILES['immaginepromozioni2']['name']);
     
    $uploadfile3 $uploaddir basename($_FILES['immaginepromozioni3']['name']);
     if (
    $del=="0") { 
    ########## UPDATE RECORD UTENTE ##########
     
    $query "UPDATE promozioni SET " 
    $query .="promozioni.didascalia1 = '$didascalia1', ";
     
    $query .="promozioni.didascalia2 = '$didascalia2', ";
     
    $query .="promozioni.didascalia3 = '$didascalia3', ";
     
    $query .="promozioni.titolo1 = '$titolo1', ";
     
    $query .="promozioni.titolo2 = '$titolo2', ";
     
    $query .="promozioni.titolo3 = '$titolo3', ";
     
    $query .="promozioni.testo1 = '$testo1', ";
     
    $query .="promozioni.testo2 = '$testo2', ";
     
    $query .="promozioni.testo3 = '$testo3', ";
     
    $query .="promozioni.link1 = '$link1', ";
     
    $query .="promozioni.link2 = '$link2', ";
     
    $query .="promozioni.link3 = '$link3', "
    $query .= "promozioni.immaginepromozioni1 = '$immaginepromozioni1_name', ";
     
    $query .= "promozioni.immaginepromozioni2 = '$immaginepromozioni2_name', ";
     
    $query .= "promozioni.immaginepromozioni3 = '$immaginepromozioni3_name' ";
     if (
    move_uploaded_file($_FILES['immaginepromozioni1']['tmp_name'], $uploadfile1) & move_uploaded_file($_FILES['immaginepromozioni2']['tmp_name'], $uploadfile2) & move_uploaded_file($_FILES['immaginepromozioni3']['tmp_name'], $uploadfile3) ) { echo "File uplodati.\n"; } else { echo "Errore! alcuni file non uplodati!\n";
     } 
    $query .= "WHERE promozioni.id = '$id' ";
     
    $result mysql_query($query$db) or die ("ERRORE - Modifica dati non effettuata!" mysql_error(). 'Query: '.$query); echo '[b]Modifica dati avvenuta con successo![/b] 

    '


  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Molto semplicemente
    Codice PHP:
    if ( $immaginepromozioni1_name != '')
        
    $query .= "promozioni.immaginepromozioni1 = '$immaginepromozioni1_name', ";
    if ( 
    $immaginepromozioni2_name != '')
        
    $query .= "promozioni.immaginepromozioni2 = '$immaginepromozioni2_name', ";
    if ( 
    $immaginepromozioni3_name != '')
        
    $query .= "promozioni.immaginepromozioni3 = '$immaginepromozioni3_name' "

  3. #3
    Intanto grazie per la risposta, non sono esperto come hai notato
    Ho inserito il tuo codice ma la query mi da errore..

    Codice PHP:
    $uploaddir 'immaginisito/';
     
    $uploadfile1 $uploaddir basename($_FILES['immaginepromozioni1']['name']);
     
    $uploadfile2 $uploaddir basename($_FILES['immaginepromozioni2']['name']);
     
    $uploadfile3 $uploaddir basename($_FILES['immaginepromozioni3']['name']);
     if (
    $del=="0") { 
    ########## UPDATE RECORD UTENTE ##########
     
    $query "UPDATE promozioni SET " 
    $query .="promozioni.didascalia1 = '$didascalia1', ";
     
    $query .="promozioni.didascalia2 = '$didascalia2', ";
     
    $query .="promozioni.didascalia3 = '$didascalia3', ";
     
    $query .="promozioni.titolo1 = '$titolo1', ";
     
    $query .="promozioni.titolo2 = '$titolo2', ";
     
    $query .="promozioni.titolo3 = '$titolo3', ";
     
    $query .="promozioni.testo1 = '$testo1', ";
     
    $query .="promozioni.testo2 = '$testo2', ";
     
    $query .="promozioni.testo3 = '$testo3', ";
     
    $query .="promozioni.link1 = '$link1', ";
     
    $query .="promozioni.link2 = '$link2', ";
     
    $query .="promozioni.link3 = '$link3', "
    if ( 
    $immaginepromozioni1_name != ''
        
    $query .= "promozioni.immaginepromozioni1 = '$immaginepromozioni1_name', "
    if ( 
    $immaginepromozioni2_name != ''
        
    $query .= "promozioni.immaginepromozioni2 = '$immaginepromozioni2_name', "
    if ( 
    $immaginepromozioni3_name != ''
        
    $query .= "promozioni.immaginepromozioni3 = '$immaginepromozioni3_name' ";
     if (
    move_uploaded_file($_FILES['immaginepromozioni1']['tmp_name'], $uploadfile1) & move_uploaded_file($_FILES['immaginepromozioni2']['tmp_name'], $uploadfile2) & move_uploaded_file($_FILES['immaginepromozioni3']['tmp_name'], $uploadfile3) ) { echo "File uplodati.\n"; } else { echo "Errore! alcuni file non uplodati!\n";
     } 
    $query .= "WHERE promozioni.id = '$id' ";
     
    $result mysql_query($query$db) or die ("ERRORE - Modifica dati non effettuata!" mysql_error(). 'Query: '.$query); echo '[b]Modifica dati avvenuta con successo![/b] 

    '


  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ah, se non c'è la terza immagine ti trovi con una virgola di troppo, prova così
    Codice PHP:
    if ( $immaginepromozioni1_name != '')
        
    $query .= "promozioni.immaginepromozioni1 = '$immaginepromozioni1_name', ";
    if ( 
    $immaginepromozioni2_name != '')
        
    $query .= "promozioni.immaginepromozioni2 = '$immaginepromozioni2_name', ";
    if ( 
    $immaginepromozioni3_name != '')
        
    $query .= "promozioni.immaginepromozioni3 = '$immaginepromozioni3_name' ";

    if (
    substr(trim($query),-1) == ',')
        
    $query substr($query,0,-2).' ';

    //poi continui col codice che hai 

  5. #5
    Perfetto funziona, ho capito il discorso della virgola ma non come l'hai risolto, ci studierò sopra.
    Grazie e buon week end!

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    trim($query) serve per rimuovere l'eventuale spazio alla fine della stringa

    if (substr(trim($query),-1) == ',') "se l'ultimo carattere è una virgola"

    $query = substr($query,0,-2).' ';

    prende tutta la stringa, tranne gli ultimi 2 caratteri, che sono la virgola e lo spazio in modo da cancellare l'ultima virgola e poi rimette lo spazio alla fine.

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.