- Home
- Categorie
- Coding e Sistemistica
- Coding
- Come modificare un campo record?
-
Ti ringrazio! Proverò...
Scusami l'ignoranza...pian piano si impara...
che devo e come devo fare per salvare la variabile $id_cl in una variabile di sessione?
Grazie!
-
La sintassi è la seguente:
[php]
$_SESSION['nome'] = 'valore';
[/php]
Dovresti mettere l'id nella fase di login.
-
Ciao! Per modificare un record (ad esempio nome e congnome di un elenco) perchè non và questa?
[php]$id=$_POST['id'];
Errore di sintassi nella query SQL vicino a '1' linea 1
$cognome=$_POST['cognome'];
$nome=$_POST['nome'];
$query=mysql_query("UPDATE inserimento_dati SET cognome = '$cognome', nome = '$nome' WHERE id = '$id'");
$risultato = mysql_query($query) or die ("Query "$query" fallitaGrazie!
-
L'errore indica che $_POST['id'], $_POST['cognome'], $_POST['nome'] non sono dichiarati.
-
Come le dichiaro?
-
Quei dati non vengono inviati dal modulo, non c'è nessun input con quel name e quindi viene generato l'errore. Controlla di aver messo i name corretti nel tuo form.
-
Ciao! Lo script ora è così, ma perchè non dovrebbe passarle?
[PHP]
$id_cl=$_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());
?><form action="modifica_dati_clienti.php" method="post" name="modifica_dati_clienti">
<input type="hidden" name="id_cl"><br><br>
COGNOME: <input type="text" name="cognome"><br><br>
NOME: <input type="text" name="nome"><br><br>
<input type="submit" value="Invia" />
</form> [/PHP]Nel form il "name" l'ho messo...
-
Inoltre, mi dà anche errore di sintassi nella query:
Notice: Undefined index: id_cl in c:\programmi\easyphp1-8\www\modifica_dati_clienti.php on line 14
Notice: Undefined index: cognome in c:\programmi\easyphp1-8\www\modifica_dati_clienti.php on line 15
Notice: Undefined index: nome in c:\programmi\easyphp1-8\www\modifica_dati_clienti.php on line 16
Query "1" fallita ::: Errore di sintassi nella query SQL vicino a '1' linea 1
-
Ciao,
Dovresti postarmi la pagina per intero, in questo modo è impossibile trovare il problema.
-
Ciao, intendi postare la pagina "inserimento_dati"?
Perchè la pagina "modifica_dati_clienti" è tutta lì...
-
Postare la pagina di elaborazione completa.
-
Ciao, questa è la pagina.php "inserimento_dati", anche se vedi scrittto "elenco_clienti" non preoccuparti perchè nell'originale va tutto ok.
L'id_cl, il cognome e il nome li prendo da qui:
[PHP]$query="INSERT INTO elenco_clienti (
id_cl
cognome,
nome,
sesso,
data_di_nascita,
citta_di_nascita,
residenza,
stato_civile,
figli,
telefono_abitazione,
telefono_cellulare,
utente_da_contattare,
telefono_abitazione2,
telefono_cellulare2,
istruzione,
professione,
religione,
data_registrazione)
VALUES('" .
addslashes ( $_POST['id_cl'] ) . "', '" .
addslashes ( $_POST['cognome'] ) . "', '" .
addslashes ( $_POST['nome'] ) . "', '" .
addslashes ( $_POST['sesso'] ) . "', '" .
addslashes ( $_POST['data_di_nascita'] ) . "', '" .
addslashes ( $_POST['citta_di_nascita'] ) . "', '" .
addslashes ( $_POST['residenza'] ) . "', '" .
addslashes ( $_POST['stato_civile'] ) . "', '" .
addslashes ( $_POST['figli'] ) . "', '" .
addslashes ( $_POST['telefono_abitazione'] ) . "', '" .
addslashes ( $_POST['telefono_cellulare'] ) . "', '" .
addslashes ( $_POST['utente_da_contattare'] ) . "', '" .
addslashes ( $_POST['telefono_abitazione2'] ) . "', '" .
addslashes ( $_POST['telefono_cellulare2'] ) . "', '" .
addslashes ( $_POST['istruzione'] ) . "', '" .
addslashes ( $_POST['professione'] ) . "', '" .
addslashes ( $_POST['religione'] ) . "', '" . )";$risultato = mysql_query( $query ) or die ( "query '$query' fallita
" . mysql_error() );while ( $elenco_clienti = mysql_fetch_array( $risultato ) )
{
echo "<table>
<style>
table {
border: solid 2px #000000;
text-align: center;
}
td {
solid 1px;
color: Black;
background: #F1EBAD;
}
</style><tr> <td><b>ID:</b> " . stripslashes($elenco_clienti['id_cl']) . "</td></tr> <td><b>COGNOME:</b> " . stripslashes($elenco_clienti['cognome']) . "</td></tr> <td><b>NOME:</b> " . stripslashes($elenco_clienti['nome']) . "</td></tr> <td><b>SESSO:</b> " . stripslashes($elenco_clienti['sesso']) . "</td></tr> <td><b>DATA DI NASCITA:</b> " . stripslashes($elenco_clienti['data_di_nascita']) . "</td></tr> <td><b>CITTA' DI NASCITA:</b> " . stripslashes($elenco_clienti['citta_di_nascita']) . "</td></tr> <td><b>RESIDENZA:</b> " . stripslashes($elenco_clienti['residenza']) . "</td></tr> <td><b>STATO CIVILE:</b> " . stripslashes($elenco_clienti['stato_civile']) . "</td></tr> <td><b>FIGLI:</b> " . stripslashes($elenco_clienti['figli']) . "</td></tr> <td><b>TELEFONO ABITAZIONE:</b> " . stripslashes($elenco_clienti['telefono_abitazione']) . "</td></tr> <td><b>TELEFONO CELLULARE:</b> " . stripslashes($elenco_clienti['telefono_cellulare']) . "</td></tr> <td><b>UTENTE DA CONTATTARE:</b> " . stripslashes($elenco_clienti['utente_da_contattare']) . "</td></tr> <td><b>TELEFONO ABITAZIONE:</b> " . stripslashes($elenco_clienti['telefono_abitazione2']) . "</td></tr> <td><b>TELEFONO CELLULARE:</b> " . stripslashes($elenco_clienti['telefono_cellulare2']) . "</td></tr> <td><b>ISTRUZIONE:</b> " . stripslashes($elenco_clienti['istruzione']) . "</td></tr> <td><b>PROFESSIONE:</b> " . stripslashes($elenco_clienti['professione']) . "</td></tr> <td><b>RELIGIONE:</b> " . stripslashes($elenco_clienti['religione']) . "</td></tr>
[/PHP]
-
Ma questa pagina non ha nulla a che vedere con quella sopra...
-
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.