secondo me il problema sta qui:

Codice PHP:
while ($row mysql_fetch_array($result)) {
 if (
$_SESSION['nome'] == $row['nome'] || $_SESSION['pw'] == $row['pw']) {
   break; 
il fatto é che prendi la prima riga del database... e se i dati non sono uguali a quelli del login il programma esce dal ciclo! infatti se il login esiste nelle righe successive il tuo script non va avanti.

io farei in modo che lo script estragga i dati di login = a quelli che inserisci e poi setta una variabile globale a 1 se il login é corretto e a 0 se é sbagliato. in questo modo non blocchi il ciclo se inserisci i dati di login della seconda riga... poi in cima alla pagina controlli se é uno o zero...

spero di essere stato chiaro.. ciao e fammi sapere