Ho utilizzato mysqli in questo modo:

$mysqli = new mysqli('localhost', 'utente', 'password', 'db');

if (mysqli_connect_errno()) {
printf("Errore di connessione al database. Errore: %s\n", mysqli_connect_error());
exit;
}

$query = "SELECT * from Utente WHERE username = '".$user."' AND password = '".$pass."'";

// L'utente è stato riconosciuto
if ($risultato = $mysqli->query($query)) {
while($riga = $risultato->fetch_assoc() ) {
session_cache_limiter("private_no_expire");
$_SESSION['login'] = "yes";
$_SESSION['username'] = $riga['Username'];
header ("Location: PaginaOK.php");
}
}

// Nome utente o password errati
else {
header ("Location: index.php");
}

Innanzitutto vi chiedo se il codice così scritto è corretto.
In secondo luogo vengo al problema: se inserisco nome utente e password corretti funziona e mi rimanda a PaginaOK, se invece uno o l'altro sono sbagliata la pagina si ferma dopo l'if e non esegue l'else. Io credevo che quell'if mi verificasse se il risultato è giusto o meno.
Come devo modificare?