No estoy de acuerdo con el "restar 0", no me parece lo mejor. Tampoco dejar una variable (como lo es $nombre) sin setear, ya que si no entra en la condición no existirá y además que es costoso el mysql_num_rows. Otra...usar un limit comparando un PK?...en si, lo haría así:
Código PHP:
$id = empty($_GET['id']) ? 0 : intval($_GET['id']);
$sql = "
SELECT
nombre, chiste
FROM
chistes
WHERE
id = '{$id}'
";
$r = mysql_query( $sql );
if( $rs = mysql_fetch_assoc($r) ){
$nombre = $rs['nombre'];
$chiste = $rs['chiste'];
}else{
$nombre = '';
$chiste = '';
}
Hay otras variantes, pero esta no está mal.