Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125

    Upload foto ed update dati

    Buonasera a tutti,
    in un DB ho una tabella che si chiama fotografie nella quale vado a scrivere il percorso di due foto (primo piano e figura intera). Terminata la compilazione di un form di registrazione, parte un upload e successivamente una serie di query che scrivono nelle tabelle del mio DB.
    La query che scrive dentro la tabella fotografie è la seguente:

    $query_4 = "INSERT INTO fotografie(id_utente,primo_piano,figura_intera) VALUES('$id_utente','img/upload/$file_name[0]','img/upload/$file_name[1]')";
    $result = mysql_query($query_4,$link) or die (mysql_error($link));

    Se però al registrarsi l'utente decide di non effettuare l'upload delle sue foto, nei campi della tabella fotografie viene scritto img/upload/, mentre invece io vorrei che venisse scritto img/upload/nome_foto_da_utilizzare_in_caso_di_mancato_upload. jpg
    Per ottenere questo risultato, ho aggiunto le seguenti righe di codice:

    $query_5 = "SELECT * FROM fotografie WHERE id_utente = '$id_utente'";
    $result = mysql_query($query_5,$link) or die (mysql_error($link));
    $riga = mysql_fetch_row($result);
    if($riga[2] == "img/upload/") {
    $query_6 = "UPDATE fotografie SET primo_piano = 'img/upload/primo_piano_non_disponibile.jpg' WHERE id_utente = '$id_utente'";
    $result = mysql_query($query_6,$link) or die (mysql_error($link));
    }
    if($riga[3] == "img/upload/") {
    $query_7 = "UPDATE fotografie SET figura_intera = 'img/upload/figura_intera_non_disponibile.jpg' WHERE id_utente = '$id_utente'";
    $result = mysql_query($query_7,$link) or die (mysql_error($link));
    }

    Tuttavia continua a scriversi nel DB img/upload/
    Perchè? Potete aiutarmi perfavore. Sono in difficoltà con questa cosa e domani devo consegnare il sito.
    Mille grazie.

  2. #2
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    Semplicissimo. Fai una sola query e il path lo generi dinamicamente.
    Codice PHP:
    if(utente non uppa foto)
         
    $percorso "img/upload/foto_no_upload.jpg";
    else
         
    $percorso "img/upload/foto_utente.jpg"
    "Se non riuscirò a piegare gli dei del cielo, smuoverò le potenze dell'inferno"
    S. Freud

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125
    <?For($i=0;$i <= $file_uploads-1;$i++) {?>
    <tr>
    <td>Seleziona foto</td>
    <td><input type="file" name="file[]" size="30" /></td>
    </tr>
    <?}?>
    Come vedi, nel mio form ho un solo campo file per l'upload, che si chiama file[] e che si duplica grazie al ciclo for.
    Come posso fare ad impostare la condizione che mi hai precedentemente suggerito tu se ho un solo nome per entrambi gli input file?

  4. #4
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    Allora se ho capito bene tu dai all'utente la possibilità di uppare 2 e solamente 2 foto (primo piano e figura intera). Giusto? Se così fosse, fare il ciclo solo per 2 input file è un po inutile quindi:
    codice:
    <input type="file" name="figuraintera" size="30" />
    <input type="file" name="primopiano" size="30" />
    e la pagina php
    Codice PHP:
    if(!isset($_POST['figuraintera']))
        
    $percorso1 "img/upload/foto_no_upload.jpg"
    else
        
    $percorso1 "img/upload/".$_POST['figuraintera'];

    if(!isset(
    $_POST['primopiano']))
        
    $percorso2 "img/upload/foto_no_upload.jpg"
    else
        
    $percorso2 "img/upload/".$_POST['primopiano']; 
    e la query
    Codice PHP:
    VALUES('$id_utente','$figuraintera','$primopiano')"; 
    "Se non riuscirò a piegare gli dei del cielo, smuoverò le potenze dell'inferno"
    S. Freud

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125
    Il tuo ragionamento non fa una piega, però io ho un problema. Non sono un fenomeno e quindi ho dovuto prendere un upload già fatto.
    Quindi mi trovo il ciclo for ed un solo input file. Se cambiassi e facessi come mi dici tu, dovrei cambiare tutto lo script che mi esegue l'upload anche e ciò non sono in grado di farlo.
    Dunque, per quanto poco pratico, mi vedo costretto a lavorare con ciò che ho.
    Se puoi aiutarmi bene, altrimenti grazie ugualmente.

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    controlla che $file_name[0] e $file_name[1] non siano la stringa vuota

  7. #7
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    così?
    Codice PHP:
    for($i $i <= nonsocosa $i++)
    {
        if(!isset(
    $file_name[$i]))
             
    $percorso[$i] = "img/upload/foto_no_upload.jpg"
        
    else
             
    $percorso[$i] = "img/upload/".$file_name[$i];

    query
    Codice PHP:
    VALUES('$id_utente','$percorso[0]','$pecorso[1]')"; 
    "Se non riuscirò a piegare gli dei del cielo, smuoverò le potenze dell'inferno"
    S. Freud

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    a me sembra ok.... perdon

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125
    Grazie bstefano79,
    con il tuo suggerimento ci sono riuscito, ma è stato un bagno di sangue perchè non sono molto ferrato; ho la testa che mi scoppia.
    Grazie anche a te Andy87, ugualmente prezioso.

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.