Salve ragazzi, ho un problema con il quale non riesco a venire a capo.

Dunque, ho un sito dove per mezzo di un form ci si registra in un database utenti che contiente nome, cognome, mail e password.

Quando ci si logga, lo script php non fa altro che connettersi al database e fare delle virifiche, in particolare ne fa tre:
1- se la mail esiste nel database;
2- se la mail esiste ma la password è sbagliata segnala errore
3- se mail e password sono corretti allora redirect in un'altra pagina.

Il problema è il seguente: se il database contiente solamente un utente, il php esegue i suoi controlli correttamente, e segnala gli opportuni errori. Ma se gli utenti sono più di uno iniziano i guai, in particolare mi dice che l'utente non è presente nel database, quando realmente lo è.
Vi posto il codice.

Codice PHP:
<?php 
$host
="localhost"
$user="xxxxxxxxx"
$database="xxxxxxxx"
//Reperisco variabili      
$mail=$_POST['maillogin']; 
$passwordlogin=$_POST['passwordlogin'];
print(
$mail);
echo(
"
"
);
print(
$passwordlogin); 
//Controllo campi vuoti
if ($mail == "") {
echo 
"<script type=\"text/javascript\">alert(\"Devi inserire una mail\"); history.go(-1)</script>";
exit;         
}     
if(
$passwordlogin == ""){ 
echo 
"<script type=\"text/javascript\">alert(\"Devi inserire una password\"); history.go(-1)</script>";             
exit;
}
//Connessione al DB     
$db mysql_connect($host$user"password") or die ("Impossibile connettersi al server");     
mysql_select_db($database,$db) or die ("Impossibile connettersi al database");
//Crypto password
$passwordlogin MD5($passwordlogin);
//Seleziono tabella 
$result mysql_query("SELECT * FROM utenti");
//Controllo mail e password
while($row mysql_fetch_array($result)){
//Mail insesistente 
if ($mail != $row['mail']) {
echo 
"<script type=\"text/javascript\">alert(\"Non risulti essere registrato\"); history.go(-1)</script>";         
exit;         
}         
//Password errata         
if ($mail == $row['mail']  && $passwordlogin != $row['password']) {                     
echo 
"<script type=\"text/javascript\">alert(\"Password non corrispondente, riprova\"); history.go(-1)</script>";         
}         
//Login corretto         
if ($mail == $row['mail']  && $passwordlogin == $row['password']) {                      /
/
Avvio sessione             
// chiusura database      
mysql_close($db);  ?>
Credo che il problema sia contenuto nel while perché se ho 1 utente funziona a dovere se ne ho più di uno dice che non esiste. Ma come è possibile?

Grazie per l'aiuto.