Dire che ti da un errore cliccando è un po' troppo generico, che errore ti da?
Inoltre, come è fatta la pagina idresult.php? Prende correttamente il parametro che arriva?

Altra cosa, effettui 2 volte la stessa query, potresti fare così per effettuarla una sola volta
Codice PHP:
include_once 'Connessione2.php';

$queryMostra "select * from persona where id = ".$_POST['id'] ;
$risultato mysql_query($queryMostra);

if(!
$risultato){
   echo
" errore nella query ".mysql_error();
}
else{
   echo 
"query valida 
"
;
}

while(
$result_row mysql_fetch_array($risultato)){
   echo 
"id trovato!
"
;
   echo
'[url="IdResult.php?id='.$result_row[1].'"]visualizza nome[/url]';
   
//una volta cliccato mi da un errore pero' se tolgo il collegamento funzione tranquillamente.
   
return;

Il return a fine ciclo a che ti serve?

EDIT: ah, dimenticavo, così il while viene eseguito anche se la query fallisce, dovresti metterlo all'interno dell'else, non ha senso eseguirlo se la query va male.