- Home
- Categorie
- Coding e Sistemistica
- Coding
- Come modificare un campo record?
-
In che senso?
-
La pagina che hai appena postato si occupa dell'inserimento e non dell'aggiornamento del record. Fanno anche riferimento a 2 tabelle differenti.
-
Per le tabelle differenti te l'ho detto, quello era uno script non aggiornato, dato che dietro di me avevo solo la penna, ma in quello originale coindidono, infatti funziona perfettamente.
-
Ciao! Ecco la pagina modifica_dati_clienti.php intera
Gli ho aggiunto l'isset.
[php]<?php
// Dati connessione al database
$db_host = 'localhost'; // Host - solitamente localhost
$db_utente = 'root'; // Nome utente del Database
$db_password = ''; // Password del Database
$db_nomedb = ''; // Nome del Database
// Effettua la connessione al database
$dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
mysql_select_db($db_nomedb);if (isset($_POST['id_cl']) && !empty($_POST['id_cl'])) {
$id=$_POST['id_cl'];
$cognome=$_POST['cognome'];
$nome=$_POST['nome'];
$query=mysql_query("UPDATE inserimento_dati SET cognome = '$cognome', nome = '$nome' WHERE id_cl = '$id_cl'");
$risultato = mysql_query($query) or die ("Query "$query" fallita ::: ".mysql_error());
echo "update eseguito";
}
else {
?>
<form method="post" action="modifica_dati_clienti.php">
<input type="hidden" name="id_cl"><br />
NOME <input type="text" name="nome"><br />
COGNOME <input type="text" name="cognome"><br />
<input type="submit" value="Invia" />
</form>
<?php } ?>
[/php]Non mi dà nessun errore, nè warning nè notice, mi fà compilare il form e mi rimanda al form, come da richiesta se l'update non è stato eseguito.
-
Perciò ora non ti da nessun errore ma non ti modifica i campi?
Nella tabella c'è il record con quell'id?
-
Nella tabella db c'è id_cl, nome e cognome...PINCO PALLO...ma non modifica nulla...mi riporta al form...
-
Ah, ti rimostra proprio il form.
Prova cosi:
[php]
<?php
// Dati connessione al database
$db_host = 'localhost'; // Host - solitamente localhost
$db_utente = 'root'; // Nome utente del Database
$db_password = ''; // Password del Database
$db_nomedb = ''; // Nome del Database
// Effettua la connessione al database
$dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
mysql_select_db($db_nomedb);if(isset($_POST['nome'])) {
$id=$_POST['id_cl'];
$cognome=$_POST['cognome'];
$nome=$_POST['nome'];
$query=mysql_query("UPDATE inserimento_dati SET cognome = '$cognome', nome = '$nome' WHERE id_cl = '$id_cl'");
$risultato = mysql_query($query) or die ("Query "$query" fallita ::: ".mysql_error());
echo "update eseguito";
}
else {
?>
<form method="post" action="modifica_dati_clienti.php">
<input type="hidden" name="id_cl"><br />
NOME <input type="text" name="nome"><br />
COGNOME <input type="text" name="cognome"><br />
<input type="submit" value="Invia" />
</form>
<?php } ?>
[/php]
Ma comunque $_POST['id_cl'] non ha alcun valore perchè l'input non ha alcun value perciò non potrà fare l'update di niente.
-
Mi rimostra sempre il form...
-
Non può essere, ma questa pagina si chiama modifica_dati_clienti.php?
-
No, scusami, mi dice:
Notice: Undefined variable: id_cl in c:\programmi\easyphp1-8\www\modifica_dati_clienti.php on line 15
Query "" fallita ::: La query e` vuotaMa perchè è vuota???
-
Te l'ho scritto prima:
$_POST['id_cl'] non ha alcun valore perchè l'input non ha alcun value perciò non potrà fare l'update di niente.
-
Avevo scritto male la pagina...una lettera digitata in più...scusami...ora:
Notice: Undefined variable: id_cl in c:\programmi\easyphp1-8\www\modifica_dati_clienti.php on line 15
Query "1" fallita ::: Errore di sintassi nella query SQL vicino a '1' linea 1
-
Ma il problema è l'id_cl? bisogna dagli un value? non credo...:?
-
Se non gli dai un value cosa vuoi passare? Passi una variabile senza valore...
-
Comunque nel codice mancava il "cl"...ora non mi dà più il notice...ma il resto come lo si risolve?
-
Ma anche il nome e cognome non hanno un value...o sbaglio?
-
L'id da qualche parte devi tenertelo...
Solitamente si passa in GET alla pagina, tipo voglio modificare l'utente con ID 3 uso la pagina modifica.php?id=3
E mi recupero l'id con $_GET['id'].
-
Il nome e cognome viene inserito manualmente perciò il value non serve, anche perchè non è usato come condizione nella query è può avere come valore una stringa vuota.
-
Ma quindi è impossibile fare quello che vorrei fare...cioè cliccare semplicemente sul cognome da modificare e modificarlo...
Se lo devo fare con GET tanto vale non è più semplice farlo attraverso il db?
-
Tornando al discorso di prima...mi dà errore nella query:
Query "1" fallita ::: Errore di sintassi nella query SQL vicino a '1' linea 1