Ora in tutti i vari passaggi non ci sono più errori, ma c'è un problema inizio con l'incollarvi il codice aggiornato:
Codice PHP:
<?php
$host="localhost";
$username="root";
$password="";
$database="vetture";
$conn=mysql_connect($host,$username,$password);
mysql_select_db($database) or die("Impossibile selezionare il database");
if($_POST && isset($_GET['id']))
{aggiorna_record();}
elseif(isset($_GET['id']))
{mostra_record();}
else
mostra_lista();
function mostra_lista()
{
if(isset($_GET['msg']))
echo '[b]'.htmlentities($_GET['msg']).'[/b]
';
$query = "SELECT id, uid, upwd FROM members";
$result = mysql_query($query);
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
echo '
<table border="1">
<tr>
<th>id</th>
<th>utente</th>
<th>password</th>
<th></th>
</tr>';
while ($row = mysql_fetch_assoc($result))
{
$id=htmlspecialchars($row['id']);
$uid=htmlspecialchars($row['uid']);
$upwd=htmlspecialchars($row['upwd']);
$link = $_SERVER['PHP_SELF'] . '?id=' . $row['id'];
echo "<tr>
<td>$id</td>
<td>$uid</td>
<td>$upwd</td>
<td><a href=\"$link\">modifica</a></td>
</tr>";
}
echo '</table>';
mysql_free_result($result);
mysql_close();
}
function mostra_record()
{
$id = intval($_GET['id']);
$query = "SELECT id,uid,upwd FROM members WHERE id = $id";
$result = mysql_query($query);
if (!$result)
{ die("Errore nella query $query: " . mysql_error()); }
if(mysql_num_rows($result) != 1)
{ die("l'ID passato via GET è errato"); }
list($id,$uid,$upwd)=mysql_fetch_row($result);
$id=htmlspecialchars($id);
$uid=htmlspecialchars($uid);
$upwd=htmlspecialchars($upwd);
echo "
<form action=\"upr.php\" method=\"post\">
utente:
<input name='utente' type='text' value=\"$uid\"/>
password:
<input name='password' type='text' value=\"$upwd\"/>
<input name='invia' type='submit' value='Invia'/>
</form>
";
}
?>
Questa è la pagina che visaulizza i record, per ognuno mi da un link per la modifica dove clicco e mi porta alla sezione function mostra_record() dove inserisco i nuovi dati da modificare e alla pressione del pulsante Invia che richiama la pagina upr.php quì sotto riportata:
Codice PHP:
<?php
function aggiorna_record()
{
// recupero i campi di tipo "stringa"
$id=intval($_GET['id']);
$uid=trim($_POST['uid']);
$upwd=trim($_POST['upwd']);
if(get_magic_quotes_gpc())
{
$id = stripslashes($id);
$uid = stripslashes($uid);
$upwd = stripslashes($upwd);
}
$id = mysql_real_escape_string($id);
$uid = mysql_real_escape_string($uid);
$upwd = mysql_real_escape_string($upwd);
$query = "UPDATE members SET uid='$uid', upwd='$upwd' WHERE id=$id";
$result = mysql_query($query);
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
mysql_close($conn);
$id = urlencode('Aggiornamento effettuato con successo');
header("location: $_SERVER[PHP_SELF]?msg=$id");
}
?>
Ora mi riporta a questa pagina però non mi modifica i dati.
Dove sbaglio? 
Se può esservi utile ecco a voi anche la struttura della table:
id int(10) unsigned PRI NULL auto_increment
uid char(30)
upwd char(30)