Gewoon met $_GET['id'] ? net zoals je show opvraagt met GET zeg maar.
Edit:
Een kleine beveilegings tip: Laat bijvoordeeld als men een auto opbraagd wel controlleren of de id inderdaad nummeriek is en of de GET niet leeg is.
<?php
if(isset($_GET['id']) && ctype_digit($_GET['id'])){
//pagina van de auto
$sql = "SELECT
velden
FROM
autos
WHERE
id = ".mysql_real_escape_string($_GET['id']);
}else{
//overzichtspagina
}
?>
Geen slechte gewoonte om altijd mysql_real_escape_string te gebruiken denk ik... Wat de isset/empty heb je gelijk. empty() doet in dit geval alles voor je!
Als je mysql_real_escape_string gebruikt zul je quote (') om het getal moeten zetten.
Als je vergeet om bv "$_GET['id']" op waarde te controleren, dan gaat je query toch echt verkeerd als "$_GET['id']" geen nummer is . (je zou zelfs SQL injecties kunnen krijgen)