Salve,
Oggi ho creato uno script (so che è programmato abbastanza da cani, ma speravo di finirlo molto rapidamente senza ragionarci troppo su, ed invece...), essenzialmente gli si passa un array con delle percentuali ed un valore numerico, a seconda di quel valore allora sceglie le possibili percentuali (per fare un esempio, se c'è una tempesta allora il tempo può cambiare solo in Pioggia, Vento o Nuvoloso) e genera un valore casuale per decidere la nuova condizione atmosferica.

Ora il problema è quando viene eseguita la funzione "changeweather" non entra nel ciclo while, o meglio ci entra una sola volta e poi esce subito...la cosa strana è che ho provato a sostituirlo con un for che avrebbe dovuto ciclare per 5 volte, senza alcuna condizione particolare, e non ha funzionato ugualmente...
Qualcuno sa perchè?

Codice PHP:
include "commons.inc.php";
function 
changeweather ($zone){
    
//Tempesta
    
if($zone[8]==0){
        
$allowed=array(125);
    }
    
//Pioggia
    
elseif($zone[8]==1){
        
$allowed=array(0256);
    }
    
//Vento
    
elseif($zone[8]==2){
        
$allowed=array(01456);
    }
    
//Nebbia
    
elseif($zone[8]==3){
        
$allowed=array(12456);
    }
    
//Neve
    
elseif($zone[8]==4){
        
$allowed=array(235);
    }
    
//Nuvole
    
elseif($zone[8]==5){
        
$allowed=array(0123456);
    }
    
//Sole
    
else{
        
$allowed=array(1235);
    }
    
$compare=$zone[$allowed[0]];
    print 
"Possibilità di ".$GLOBALS["w"][$allowed[0]].": 0 - $compare
"
;
    for(
$i=1$i<count($allowed); $i++){
        
$next=$compare+$zone[$allowed[$i]];
        if(
$zone[$allowed[$i]]==0){
            print 
"Possibilità di ".$GLOBALS["w"][$allowed[$i]].": 0
"
;
        }
        else{
            print 
"Possibilità di ".$GLOBALS["w"][$allowed[$i]].": ".($compare+1)." - ".($next)."
"
;
        }
        
$compare=$next;
    }
    print 
"</p>";

    
$b=1;
    
$weather=rand(0$next);
    print 
"Valore uscito: $weather
"
;
    
$sum=$zone[$allowed[0]];
    
$i=0;
//NON ENTRA IN QUESTO CICLO
    
while($b==AND $i<count($allowed)){
        if(
$weather<=$sum){
            
$b=0;
            
$sum=$sum+$zone[$allowed[$i]];
        }
        else{
            
$i++;
            
$sum=$sum+$zone[$allowed[$i]];
        }
        print 
$allowed[$i]."
"
;
        print 
$GLOBALS["w"][$allowed[$i]]."

"
;
        return 
$allowed[$i];
    }
}

$sql "SELECT * FROM weathers";
$cont mysql_query($sql,$GLOBALS["connessione"]) or die(mysql_error());
$i=0;
$j=0;
while(
$row mysql_fetch_row($cont)){
    for(
$i=0$i<10$i++){
        
$t[$j][$i]=$row[$i];
    }
    
$j++;
}
for(
$j=0$j<count($t); $j++){
    
$newweather=changeweather($t[$j]);
    
$sql="UPDATE weathers SET Current = '$newweather' WHERE `Luogo` = '".$t[$j][7]."'";
    
$cont mysql_query($sql,$GLOBALS["connessione"]) or die(mysql_error());