interessante...
ma nel while cosa ci metti?

io farei una cosa del genere:

if (se $soggetto = !tutti ){
$i=0 = 1;
}
while ($i<=0){
SCRIPT
}


ma solo in generale perchè tu sei stato molto generale.