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

    Aggiornare campo sql con form

    Ciao ragazzi, ho questo codice che mi fa visualizzare alcuni campi di alcune tabelle che ho nel DB. Volevo creare una text area che mi permetta di aggiornare alcuni valori.
    Io ho questo codice, ma quando premo il bottone non mi riconosce più le variabili.
    Potete aiutarmi ? Grazie

    Codice PHP:
    <?php $con mysql_connect("localhost","root","");
     if (!
    $con) { die('Could not connect: ' mysql_error()); } 
    mysql_select_db("prova"$con); $val $_POST['id']; 
    $query=mysql_query("SELECT * FROM contratti WHERE Contratto = $val"$con); 
    echo 
    "<h2>Gestione copie contratto $val</h2>"
    while(
    $row=mysql_fetch_array($query))
    { @
    $inc=$row["Copie_incluse_BN"]; @$fatte=$row["Copie_Fatte_BN"]; 
    @
    $saldo=$row["Copie_Saldo"];
     @
    $costo=$row["Costo_Copia_BN"]; } 
    echo 
    "Copie incluse annuali".$inc."
    "
    ; echo "Copie fatte fino adesso".$fatte."
    "

    echo 
    "Copie saldo (quante ne manca ancora)".$saldo."
    "

    echo 
    "Copie costo unitario".$saldo."
    "

    echo 
    "Copie € da aggiungere alla fattura"."
    "

    echo 
    "<form action=\"#\" method=\"post\"><input type=\"text\" name=\"btn\"size=\"20\"/>

    <input name=\"btn\" value=\"btn\" type=\"submit\"></form>"
    ;

     if (isset(
    $btn)){ 
    mysql_query(" UPDATE contratti SET Copie_Fatte_BN = 'btn' WHERE Contratto = '$val' ");
     if (
    mysql_error()){ echo mysql_error();} } ?>

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746

    Re: Aggiornare campo sql con form

    Siccome invii i dati tramite form alla stessa pagina devi anche inviare nuovamente l'id del record, in un input hidden, affinchè abbia un valore per la clausola WHERE dell'UPDATE.

    L'UPDATE di conviene farlo prima della SELECT in modo che poi nella visualizzazione ritrovi già il dato appena inserito.

    Invece di mettere il valore di "id" inviato tramite POST nella variabile $var, mantienilo come $_POST['id'], così tanto per non fare confusione.

    Più o meno il codice lo vedrei così

    Codice PHP:

    $con 
    mysql_connect("localhost","root","");
     if (!
    $con) { die('Could not connect: ' mysql_error()); } 
    mysql_select_db("prova"$con);

     if (isset(
    $_POST['btn'])) { 
    mysql_query("UPDATE contratti SET Copie_Fatte_BN = '".$_POST['btn']."' WHERE Contratto = '".$_POST['id']."' ") ;
     if (
    mysql_error()) { echo mysql_error() ; }
     }

    $query=mysql_query("SELECT * FROM contratti WHERE Contratto = '".$_POST['id']."' "$con); 

    $row=mysql_fetch_array($query) ;

    if ( empty(
    $row['Copie_incluse_BN']) )  $row['Copie_incluse_BN'] = '' ;
    if ( empty(
    $row['Copie_Fatte_BN']) )  $row['Copie_Fatte_BN'] = '' 
    if ( empty(
    $row['Copie_Saldo']) )  $row['Copie_Saldo'] = '' ;
    if ( empty(
    $row['Costo_Copia_BN']) )  $row['Costo_Copia_BN'] = '' ;

    echo 
    '<h2>Gestione copie del contratto nr.'.$_POST['id'].'</h2> 
    Copie incluse annuali: '
    .$row['Copie_incluse_BN'].'

    Copie fatte fino adesso: '
    .$row['Copie_Fatte_BN'].'

    Copie saldo (quante ne manca ancora): '
    .$row['Copie_Saldo'].'

    Copie costo unitario: '
    .$row['Copie_Saldo'].'


    <form action="#" method="post">
    <input type="hidden" name="id" value="'
    .$_POST['id'].'" />
    Copie € da aggiungere alla fattura <input type="text" name="btn" size="20" />
    <input type="submit" name="btn" value="Inserisci" >
    </form>' 

    Errare humanum est, perseverare ovest

  3. #3
    Buongiorno,
    grazie per la dritta, di errori non me ne esce più ma i dati non si aggiornano.
    La pagina si refresha ma non avviene l'update dei dati..

  4. #4
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Metti un echo tanto per vedere se viene eseguito l'update
    Codice PHP:
     if (isset($_POST['btn'])) { 

    echo 
    'OK' ;

    mysql_query("UPDATE contratti SET Copie_Fatte_BN = '".$_POST['btn']."' WHERE Contratto = '".$_POST['id']."' ") ;
     if (
    mysql_error()) { echo mysql_error() ; }
     } 
    e vedi se viene visualizzato l'OK
    Errare humanum est, perseverare ovest

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.