[PHP] Aggiornare un valore del database tramite form

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Ciao a tutti,
Ho la necessita' di aggiornare il valore 'dato50' del mio database prendendo come riferimento il valore 'dato8'.
dato8 fa da ID insomma...
Ecco il mio form:
index.php
Codice:
<form action="aggiorna_dato.php" method="post">



DATO8 :&nbsp&nbsp<input type="text" name="dato8" /><br><hr>



DATO50:&nbsp&nbsp<input type="text" name="dato50" /><br><hr>



 

<input type="submit" value="SALVA DATI" />

</form>

E qui la pagina php che dovrebbe aggiornare :
aggiorna_dato.php
Codice:
<?php
/*
  blocco dei parametri di connessione
*/
// nome di host
$host = "localhost";
// nome del database
$db = "my_db";
// username dell'utente in connessione
$user = "pippo";
// password dell'utente
$password = "";

/*
  blocco try/catch di gestione delle eccezioni
*/
try {
  // stringa di connessione al DBMS
  $connessione = new PDO("mysql:host=$host;dbname=$db", $user, $password);
  // imposto l'attributo per il report degli errori
  $connessione->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // istruzione per l'aggiornamento
  $aggiorna_dati = $connessione->exec("UPDATE completo SET dato50= 'DATO8' WHERE id =50 ");
  // chiusura della connessione
  $connessione = null;
}
catch(PDOException $e)
{
  // notifica in caso di errore nel tentativo di connessione
  echo $e->getMessage();
}
?>

Non capisco dove sbaglio?
In pratica,tramite il form,inserendo il DATO8 che fara' da id ....deve andare ad aggiornare ...(cancellando e aggiornando il vecchio dato50)

Grazie a tutti in anticipo
 
Ciao a tutti,
Ho la necessita' di aggiornare il valore 'dato50' del mio database prendendo come riferimento il valore 'dato8'.
dato8 fa da ID insomma...
Ecco il mio form:
index.php
Codice:
<form action="aggiorna_dato.php" method="post">



DATO8 :&nbsp&nbsp<input type="text" name="dato8" /><br><hr>



DATO50:&nbsp&nbsp<input type="text" name="dato50" /><br><hr>



 

<input type="submit" value="SALVA DATI" />

</form>

E qui la pagina php che dovrebbe aggiornare :
aggiorna_dato.php
Codice:
<?php
/*
  blocco dei parametri di connessione
*/
// nome di host
$host = "localhost";
// nome del database
$db = "my_db";
// username dell'utente in connessione
$user = "pippo";
// password dell'utente
$password = "";

/*
  blocco try/catch di gestione delle eccezioni
*/
try {
  // stringa di connessione al DBMS
  $connessione = new PDO("mysql:host=$host;dbname=$db", $user, $password);
  // imposto l'attributo per il report degli errori
  $connessione->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // istruzione per l'aggiornamento
  $aggiorna_dati = $connessione->exec("UPDATE completo SET dato50= 'DATO8' WHERE id =50 ");
  // chiusura della connessione
  $connessione = null;
}
catch(PDOException $e)
{
  // notifica in caso di errore nel tentativo di connessione
  echo $e->getMessage();
}
?>

Non capisco dove sbaglio?
In pratica,tramite il form,inserendo il DATO8 che fara' da id ....deve andare ad aggiornare ...(cancellando e aggiornando il vecchio dato50)

Grazie a tutti in anticipo

Scusami ma tu usi il metodo POST ma nel file aggiorna_dato.php non li recuperi da nessuna parte questi valori.

Devi recuperarli tramite $dato50 = $_POST["dato50"] e dato8 = $_POST["dato8"].

Fatto ciò la query diventa:

UPDATE completo SET dato8 = '$dato8' WHERE id = '$dato50'
 
se l'aggiornamento del "DATO8" dipende da "DATO50" già presente nel db, a cui si applica una formula,
considerati i 6000 record, penso possa suggerirti di usare una query, eliminando il lavoro di inserimento dei valori
posta qualche info in più, se ti interessa questa via
 
Ciao Marino51 e ciao a tutti
Nel mio database mysql ho una tabella che gestisce tutto ed e' gia' popolata.
52 colonne denominate dato1,dato2,dato3 etc,etc
circa 6000 righe
Ora , tramite il form postato,inserendo come riferimento il dato8 e attribuendo a dato50 un nuovo valore, invio
al database e vorrei l'aggiornamento del dato50 sulla riga che riguarda il dato8 inserito nel form.
Non so come scriverlo nello script php....
 
Cosi non aggiorna il dato..non capisco...
PHP:
<?php
include('../../struttura/header.php');
?>
<center>
<link href="stilefoglio.css" rel="stylesheet" type="text/css">
<?php
$con = mysql_connect("localhost","user","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("my_db", $con);
$dato50 = $_POST["dato50"] e dato8 = $_POST["dato8"]
$sql="UPDATE completo SET dato8 = '$dato8' WHERE id = '$dato50'
VALUES
('$_POST[dato8]','$_POST[dato50]')";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "DATO INSERITO CORRETTAMENTE";
mysql_close($con)
?>
Scusami ma sono alle prime armi
 
Ultima modifica di un moderatore:
ciao
correggi in
PHP:
$dato50 = $_POST["dato50"];
$dato8 = $_POST["dato8"];
$sql="UPDATE completo SET dato8 = '$dato8' WHERE id = '$dato50'";
//....
considera poi che se dato50 un numero intero (generlamente gli id sono numeri interi) non ci vogliono gli apici
PHP:
$sql="UPDATE completo SET dato8 = '$dato'8 WHERE id = $dato50";
 
Cosi non aggiorna il dato..non capisco...
PHP:
<?php
include('../../struttura/header.php');
?>
<center>
<link href="stilefoglio.css" rel="stylesheet" type="text/css">
<?php
$con = mysql_connect("localhost","user","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("my_db", $con);
$dato50 = $_POST["dato50"] e dato8 = $_POST["dato8"]
$sql="UPDATE completo SET dato8 = '$dato8' WHERE id = '$dato50'
VALUES
('$_POST[dato8]','$_POST[dato50]')";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "DATO INSERITO CORRETTAMENTE";
mysql_close($con)
?>
Scusami ma sono alle prime armi

Secondo me non si tratta di essere alle prime armi.
Non prenderla a male ma come puoi programmare "alle prime armi" se commetti certi errori...
Tu non stai facendo altro che un copia e incolla senza capire minimamente quello che stai facendo perchè copiare una riga del genere $dato50 = $_POST["dato50"] e dato8 = $_POST["dato8"] significa non conoscere proprio nulla.
Ma io lo dico per te, senza offenderti. Leggiti prima un paio di guide/libri/dispense vedrai che risolverai da solo tutti i tuoi quesiti.
 
ciao
correggi in
PHP:
$dato50 = $_POST["dato50"];
$dato8 = $_POST["dato8"];
$sql="UPDATE completo SET dato8 = '$dato8' WHERE id = '$dato50'";
//....
considera poi che se dato50 un numero intero (generlamente gli id sono numeri interi) non ci vogliono gli apici
PHP:
$sql="UPDATE completo SET dato8 = '$dato'8 WHERE id = $dato50";
Non aggiorna Borgo..
Codice:
<?php
$con = mysql_connect("localhost","user","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("my_db", $con);
$dato50 = $_POST["dato50"];
$dato8 = $_POST["dato8"];
 $sql="UPDATE completo SET DATO8 = '$dato'8 WHERE id = '$dato50'";


if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "DATO INSERITO CORRETTAMENTE";
mysql_close($con)
?>
 
Secondo me non si tratta di essere alle prime armi.
Non prenderla a male ma come puoi programmare "alle prime armi" se commetti certi errori...
Tu non stai facendo altro che un copia e incolla senza capire minimamente quello che stai facendo perchè copiare una riga del genere $dato50 = $_POST["dato50"] e dato8 = $_POST["dato8"] significa non conoscere proprio nulla.
Ma io lo dico per te, senza offenderti. Leggiti prima un paio di guide/libri/dispense vedrai che risolverai da solo tutti i tuoi quesiti.
Non me la prendo...hai ragione..
Penso solo che se non ti va di dare una mano sul forum puoi decidere di non farlo senza ostentare il tuo sapere.
Grazie comunque..
 
Non me la prendo...hai ragione..
Penso solo che se non ti va di dare una mano sul forum puoi decidere di non farlo senza ostentare il tuo sapere.
Grazie comunque..

Se io controllo ogni tanto questo forum è per aiutare quando posso.
Il problema è che comunque anche chi richiede aiuto deve mostrare un minimo di conoscenza sull'argomento.
Non si può pretendere che altri risolvano problemi senza che chi chiede non sappia niente.
"Caio che non ha mai programmato prende un codice da internet e chiede aiuto perchè ha un errore che non sa risolvere" -> "Caio sta chiedendo di fare a qualcuno quello che gli serve e non sa minimamente come fare"
 
Non me la prendo...hai ragione..
Penso solo che se non ti va di dare una mano sul forum puoi decidere di non farlo senza ostentare il tuo sapere.
Grazie comunque..
off topic ?

devi avere pazienza, ma,
va tutto bene se stai facendo un esercizio di comprensione
va altrettanto bene se stai facendo un gioco
va meno bene se ciò che fai è destinato ad un'azienda o ad un ente pubblico
e noi non lo sappiamo, chi suggerisce soluzioni opta per il terzo caso cercando di intravedere tutte le possibilità

per farmi capire, vorrei tu potessi vedere una "Comunicazione mensile al Pensionato", redatta dall'INPS ed antecedente il gennaio 2014,
ebbene, nella comunicazione NON è disponibile nessun "VALORE LORDO", sono presenti le voci "+" e "-" ed un "VALORE NETTO"
già ci si pone la domanda, ma chi è il "WEBETE" che ha sviluppato il software e chi lo ha approvato senza il valore lordo ?
il peggio avviene nel mese di agosto quando, in concomitanza del rimborso irpef,
il lordo ricalcolato differisce in maniera significativa (a danno del pensionato) rispetto ai mesi dello stesso anno

nel lavoro di programmazione occorre distinguere il diletto dal professionale, quest'ultimo richiede perizia ed estrema attenzione

rivolgersi ad un professionista, retribuito, spesso costa meno


@Borgo,
PHP:
$sql="UPDATE completo SET dato8 = '$dato8' WHERE id = $dato50";
nel db ci sono 6000 righe, suppongo che, con la clausola usata, vengano aggiornate molte righe contemporaneamente
altrimenti sarebbe dispendioso inserire 6000 valori con il metodo "form"

ma ... mi astengo
 
ciao
intanto non fate discussioni inutili.
poi cosa è quell' 8 nella query, hai messo in mezzo l'apice?
$sql="UPDATE completo SET DATO8 = '$dato'8 WHERE id = '$dato50'";
PHP:
$sql="UPDATE completo SET DATO8 = '$dato8' WHERE id = '$dato50'";
poi un dubbio, cosa hai dentro $dato50? posta un esempio
 
ciao
intanto non fate discussioni inutili.
poi cosa è quell' 8 nella query, hai messo in mezzo l'apice?
$sql="UPDATE completo SET DATO8 = '$dato'8 WHERE id = '$dato50'";
PHP:
$sql="UPDATE completo SET DATO8 = '$dato8' WHERE id = '$dato50'";
poi un dubbio, cosa hai dentro $dato50? posta un esempio
L'esempio puo' essere:
Codice:
              TABELLA
id,        DATO1,       DATO2,....,   DATO8, ...........           DATO50
1     1             R3        0        DGF6387                         IN ALTO
2     1             R5        0        DGF6789                         IN BASSO
3     1             R7        0        DFG5555                        AL CENTRO
Se con il mio form inserisco un dato della colonna 8 ,e uno della colonna 50 , l'invio mi deve aggiornare
la nuova posizione della colonna 50 ma solo del dato della colonna 8 che ho inserito nel form
 

Discussioni simili