Avevo guardato solo la riga della query senza tutto il contorno.
mysql_affected_rows() restituisce il numero di righe "affette" dall'aggiornamento.

Quindi

if ($num>0)
echo "errore nella connessione al database";
else ...

è sbagliato. Se il valore è maggiore di 0 significa che l'aggiornamento è avvenuto.

Semplificando al massimo il tuo problema prova così

Codice PHP:
$cognome $_POST['T1'];
$nome $_POST['T2'];
$cartella =$_POST['cart'];
$db mysql_connect('localhost''root''');
mysql_select_db('nome_database');
$sqlinsermysql_query("UPTADE foglio SET nome = '$nome', cognome = '$cognome' WHERE cartella = $cartella") or die(mysql_error());