Beh... il comportamento strano non me lo spiego, ma onestamente, trovo tu possa fare moooolto di più per ottimizzare il codice in partenza.
C'è una profusione di cose inutili nel codice, che appesantisce tutto.
Io ti consiglio di fare come segue:
Codice PHP:
// qui esegui la tua query
$w = 1; // il contatore
/* qui devi mettere in echo i tag di apertura della tabella */
while ($fetch = mysql_fetch_array($query)) {
echo "
<tr bgcolor=".$colori[$w%2].">
<td>$w</td>
<td>".$fetch['nome']."</td>
<td>".$fetch['cognome']."</td>
<td>".$fetch['specializzazione']."</td>
<td>".$fetch['sede']."</td>
<td>".$fetch['citta']."</td>
<td>
[url='dettagli_medico.php?id=".$fetch[']Visualizza[/url]
</td>
</tr>
";
$w++;
}
/* qui devi mettere in echo i tag di chisura della tabella */
Ora, a prescindere che io odio le tabelle, ma che talvola sono comode, come vedi con questo metodo risparmi codice, e con il ciclo di WHILE abbinato al fecthing dei risultati della query, risula anche più leggibile.
Prova così se ottieni risultati strani, ma controlla un minimo la sintassi perché ho scritto di getto qui sul forum e non ho ricontrollato eventuali errori.