Ciao navigatori! Avrei un problema e spero mi possiate dare una mano.

Dovrei controllare ogni valore presente in un array ('$array' che fatasia eh?) con un valore estratto da una query SQL.
Il problema è che il ciclo controlla SOLO il primo valore che ho nell'array ('$array') perchè si ferma dopo aver esaurito le righe ($row).

Codice PHP:
foreach ($array as $val){
    while (
$row mysql_fetch_assoc($query)){ 

        if (
$val == $row[tag]){
            echo 
"Controllo -->[i]$val[/i] con --> [i]$row[tag][/i]. C'è gia? "
            echo 
"si 

"
;

        }else{
            echo 
"Controllo -->[b]$val[/b] con -->[b]$row[tag][/b]. C'è gia? ";
            echo 
"no 

"
;
        }
    }

Come posso far continuare il ciclo e controllare tutti i valori SENZA però scambiare l'istruzione del foreach con il while?
(in questo modo funzionerebbe ma avrei altri problemi dopo, perchè il primo valore che vorrei fosse confrontato è quello dell'array!!!)
Codice PHP:
while ($row mysql_fetch_assoc($query)){ 
         foreach (
$array as $val){
         ....
         ....