Dziwne, że nie wywala błędu, bo nie zakończyłeś waruneku if.
$numer = $_GET['id'];
if ($_GET['menu'] == 'edzawodnik'){ //brakuje zakończenia
$query=" SELECT * FROM zawodnik where id=$numer";
$result=mysql_query($query);
$row = mysql_fetch_array($result);
?>
<form action="udzawodnik.php" method="post">
<input type="text" name="ud_id" value="
<?php echo $row[id
]; ?>">
<input type="text" name="ud_imie" value="
<?php echo $row[imie
]; ?>">
<input type="text" name="ud_nazwisko" value="
<?php echo $row[nazwisko
]; ?>">
<input type="Submit" value="Aktualizuj">
</form>
I jeżeli mam być szczery to ten formularz będzie zawsze wyświetlany bo jest poza warunkiem

powinno być tak:
<?php
if ($_GET['menu'] == 'edytuj') {
$query=" SELECT * FROM zawodnik";
$i=0;
while ($i < $num) {
echo "<a href=\"admin.php?menu=edzawodnik&id=$id\"> edytuj </a> <br />"; ++$i;
}
}
if ($_GET['menu'] == 'edzawodnik'){
$query=" SELECT * FROM zawodnik where id=".$_GET['id']."";
echo '<form method="POST" action="udzawodnik.php">' .'<p><input type="text" value="'.$row[id].'" name="id" size="22" />'
.'<p><input type="text" value="'.$row[imie].'" name="imie" size="22" />'
.'<p><input type="text" value="'.$row[nazwisko].'" name="nazwisko" size="22" />'
.' <input type="submit" value="Zapisz"/></p>'
.'</form>';
}
?>
Pozbyłem się zmiennej $Numer bo jest nie potrzebna.