Visualizzazione risultati 1 fino 7 di 7

Discussione: Sovrascrivi immagine - Problema in UPDATE

  1. #1
    provact non è connesso Utente giovane
    Data registrazione
    23-12-2009
    Messaggi
    40

    Predefinito Sovrascrivi immagine - Problema in UPDATE

    Buongiorno,

    Vi scrivo perché sto riscontrando un problema nell'UPDATE di un'immagine.
    Sostanzialmente, ho creato questo input:

    Codice PHP:
    <tr><input type=hidden name=IDFamigliaNuova value='.$rs['IDFamiglia'].'>
    <
    td valign="middle">'.$rs['IDFamiglia'].'</td>
    <
    td align="center" valign="middle"><img src="img/famiglia/'.$rs['Img'].'" border=0 Title="'.$rs['IDFamiglia'].'"></td>
    <
    td align="center" valign="middle"><input type=file name="file"></td>
    <
    td align="center" valign="middle"> <input id=op2 type="submit" name="Operazione" value="OkImg"> </td>
    </
    tr>';
    Una volta clikkato sul form, parte l'operazione:

    Codice PHP:
    if($Operazione=="OkImg") {

    $MySql = "UPDATE Famiglia SET Img = '".$_FILES['file']['name']."' WHERE IDFamiglia= '".$IDFamiglia."'";

    $NomeImmagine = strtolower($_FILES['file']['name']);
    $basedir = 'img/famiglia/';
    copy($_FILES['file']['tmp_name'],$basedir.'/'.$NomeImmagine);
    unlink($_FILES['file']['tmp_name']);

    $Result = mysql_query($MySql);
    if(
    $Result){echo '<b><font color=red> Stemma modificato!</font></b>';};
    $Operazione=0;
    }
    Il problema principale è che, oltre a non modificarmi la tabella Img, l'immagine non viene neanche caricata nella cartella img/famiglia

    Non so veramente dove sia il problema

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    In questo esempio manca la url a cui inoltrare il file , metodo POST e enctype="multipart/form-data"
    .
    mysql_error($link) e guarda gli esempi https://www.php.net/manual/en/featur...ost-method.php
    Comunque dopo aver risolto passa da mysql a mysqli
    Ultima modifica di darbula : 08-04-2019 alle ore 14.34.03

  3. #3
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    MySQL è morto dal 1 gennaio 2019 (Database issues, Supported Versions): usa mysqli o PDO.

    Ci sono in realtà diverse imprecisioni, prova a leggere una guida sul caricamento delle immagini prima. In particolare non usare copy, ma move_uploaded_file e, quando chiami una qualsiasi funzione che preveda la possibilità di fallire, controlla la presenza di errori e mostrali, oppure registrali in un sistema di log.

    I suggerimenti che do più spesso:


  4. #4
    provact non è connesso Utente giovane
    Data registrazione
    23-12-2009
    Messaggi
    40

    Predefinito

    Grazie mille ragazzi, ho risolto :)
    Vi disturbo solo per un'ultima cosa. Quando vado a modificare un dato contenente nel select, questo non rimane fisso dopo aver clikkato il submit.

    Mi spiego meglio, portando un esempio: dopo aver clikkato l'opzione nel select, clikko su INVIO. Faccio tutto quello che devo fare e clikko su MODIFICA. Ecco, arrivato a questo punto la modifica viene eseguita correttamente, ma sono costretto nuovamente a riselezionare l'opzione perché il comando mi torna nella pagina del primo risultato.

    Posto il codice:

    Codice PHP:
    <center><select Name="ID">
    <?
    $MySql
    = 'SELECT IDFamiglia,NomeFamiglia FROM Famiglia WHERE NomeFamiglia!="" ORDER BY NomeFamiglia';
    $Result = mysql_query($MySql);
    while (
    $rs = mysql_fetch_array($Result)) {
    echo
    '<option value="'.$rs['IDFamiglia'].'"';
    if (
    $ID == $rs['IDFamiglia']) {
    echo
    ' selected ';
    }
    echo
    '>'.$rs['NomeFamiglia']." (ID:".$rs['IDFamiglia'].') </option>';
    }
    $rs->close;
    mysql_free_result($Result);

    echo
    '</select> <input type=submit value="Carica famiglia"></center>';
    Questo è il form con la modifica (vi metto solo un campo esempio):

    Codice PHP:
    echo '<form action="gst.php" method="Post" enctype="multipart/form-data">
    <td valign="middle"><font><input name="CapoFamiglia" size=15 type="text" value="'
    .$rs['Famiglia'].'"></font></td>
    <td align="center" valign="middle"> <input id=op2 type="submit" name="Operazione" value="Ok"> </td>'
    ;
    Questo è dove modifica:

    Codice PHP:
    if ($Operazione=="Ok")
    {
    UPDATE

    $Result
    = mysql_query($MySql);
    if(
    $Result){echo '<b><font color=red>modificato!</font></b>';}
    }
    Ultima modifica di provact : 09-04-2019 alle ore 18.51.47

  5. #5
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Mi dispiace mi sono perso ma il valore di option con select name ID si recupera con $_POST['ID']..
    Presumo che gst.php e il form sono la stessa pagina e in quel caso devi fare un passo indietro .... Prima della modifica sicuramente metti in ordine tramite una query e tanti option?

  6. #6
    provact non è connesso Utente giovane
    Data registrazione
    23-12-2009
    Messaggi
    40

    Predefinito

    Esattamente, sono la stessa pagina (e la modifica avviene correttamente su tutti i campi).
    Il mio unico problema è che, dopo la modifica, ritorna al primo valore e quindi sono costretto nuovamente a riselezionare, clikkate, modificare.

    ID lo recupero:

    Codice PHP:
    if (ISSET($_POST['ID'])){$ID=$_POST['ID'];}

    $ID=$_POST['ID'];

  7. #7
    provact non è connesso Utente giovane
    Data registrazione
    23-12-2009
    Messaggi
    40

    Predefinito

    Risolto. Errore mio.
    Avevo dimenticato di valorizzare un POST

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •