Ciao, sì, il problema è nel ciclo, ma prima di tutto voglio darti un consiglio.
Chiaramente sei all'inizio con PHP e di conseguenza con l'interfacciamento ad un database, il consiglio è: NON usare le funzioni mysql_ sono state tempo fa abbandonate e più recentemente rimosse, se ti funzionano vuol dire che stai usando una versione di PHP vecchia, così come vecchi sono gli esempi a cui ti sei ispirato per creare quello script.
Impara da subito ad usare PDO per dialogare col database, in questo modo dovrai imparare una cosa invece che 2 perché appena i tuoi script si troveranno a girare su una versione nuova di PHP non funzioneranno più e dovrai correre a modificare il codice.
Veniamo al tuo problema.
la variabile contatore $i è usata male.
Ad ogni ciclo vale una unità in più, ma ad ogni ciclo cambi anche riga di risultato per via del fetch nel while, quindi è giusto ciò che ottieni ovvero primo ciclo prendi la colonna 0 della prima riga, poi $i+1 e nuova riga, quindi colonna 1 della seconda riga...
D'altro canto la variabile $i neanche serve, il numero di colonne della tabella non è variabile, lo sai quante sono e sai anche come si chiamano, quindi quel ciclo lo farei così (mantengo le mysql_ per usare qualcosa a te familiare, ma resta il consiglio di passare a PDO)
Codice PHP:
// se vuoi usare gli indici delle colonne
while ( $row = mysql_fetch_array($result) )
{
echo '<td>' . $row[0] . '</td><td>' . $row[1] . '</td><td>' . $row[2] . '</td>';
}
// visto che sai i nomi delle colonne, così il codice è più leggibile,
// sai subito che colonna stai visualizzando, senza doverti ricordare le posizioni
// i nomi sono case sensitive, quindi devi rispettare maiuscole e minuscole,
// io li ho scritti così come lì hai proposti tu
while ( $row = mysql_fetch_assoc($result) )
{
echo '<td>' . $row['ID'] . '</td><td>' . $row['DESCRIZIONE'] . '</td><td>' . $row['CERTIFICAZIONE'] . '</td>';
}
EDIT: ho erroneamente tralasciato il fatto della selezione della tabella, quindi non sai effettivamente numero di colonne e nomi. Il discorso PDO resta valido, così come l'uso errato di $i, appena ho un attimo correggo la risposta riguardante il resto.