Ciao, ci sono un po' di errori, quelli segnalati da Kurt e degli echo mancanti dove cerchi di printare delle variabili nei tag/attributi.
La action del form e' errata o ad ogni modo se deve restare la stessa url corrente potresti anche omettere il valore che per default diventa la url corrente.
Ho riscritto al volo, puoi provare e vedere se funziona (non ho potuto ovviamente testare)
[code]
<form name="form_registrazione" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table width=”200″ border=”0″>
<tr>
<td>Cyl:</td>
<td>
<?php
include ("config.php");
$DBName="rail";
mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");
$sql ="SELECT id FROM cyl where cyl='$cyl'";
$r= mysql_query($sql) or die(mysql_error());
$v= mysql_fetch_row($r);
$id= $v['id'];
$sqlquery ="SELECT id,cyl FROM cyl";
$result = mysql_query($sqlquery) or die('<p> Errore mentre recuperavo i dati' . mysql_error() . '</p>');
while ($value= mysql_fetch_array($result))
{
$val=$value['cyl'];
if ($value['id']==$id){
?>
<td width="" bgcolor="" colspan="">
<textarea name="cyl" value="<?php echo $value['cyl']; ?>" rows="1" cols="10"><?php echo $value['cyl']; ?></textarea>
</td>
<?php
} else { ?>
<td><label><?php echo $val; ?></label></td>
<?php
}
}
?>
</div>
</td>
</tr>
</table>
<br> <br>
<p>
<input name="invia" type="submit" value="Save" />
</p>
</form>
[/php]
NB
gli spazi fra i tag php e le istruzioni fanno la differenza come le punteggiature in alcuni casi.