Ok from a first script this is quite good.
A few improvements which will make it better
if(isset($showdetails)){
Where is $showdetails coming from. Is that the $_GET['showdetails']? if so use that.
Secondly
In your ID if your expect only numerical data instead of just
$id=$_GET['showdetails'];
use
$id=(int)$_GET['showdetails'];
That stops SQL injects as it only gets numerical data and stops anything else from being in it.
$name="$row[FirstName]";
Can be done better as this
$name=$row['FirstName'];
But what you had was good. Also you dont really need the extra variables as $name etc. Why not just use them in the echo?
Also before you output any data you should run a mysql_num_rows() to make sure that there is a record that can be returned else an error is displayed.
$PHP_SELF
use
$_SERVER['PHP_SELF']
Try to code using register_globals=off even if the server has them as on its a security risk otherwise.
Other than that you look to have a good script.