Ignore:
Timestamp:
04/05/06 21:20:50 (9 years ago)
Author:
joe
Message:

Amélioration du 'workflow' des quotas. Ajout de vérifications additionelles pour les quotas. Optimisation et évitement de 'race-conditions' dans les requètes MySQL de quotas. C'est tout :-).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bureau/class/m_quota.php

    r990 r991  
    253253 
    254254    foreach($newq as $type => $quotas) { 
    255       reset($qlist); 
    256       foreach($qlist as $qname => $val) { 
    257         if($quota==$qname){ 
    258           $db->query("SELECT value FROM defquotas WHERE type='$type' AND quota='$qname'"); 
    259           if (!$db->next_record()) { 
    260             $db->query("INSERT INTO defquotas (value,quota,type) VALUES ('".$quotas[$qname]."','$key','$type');"); 
    261           } else { 
    262             $db->query("UPDATE defquotas SET value='".$quotas[$qname]."' WHERE type='$type' AND quota='$qname';"); 
    263           } 
    264         } 
     255      foreach($quotas as $qname => $value) { 
     256        if(array_key_exists($qname, $qlist)) { 
     257          if(!$db->query("REPLACE INTO defquotas (value,quota,type) VALUES ($value,'$qname','$type');")) 
     258            return false; 
     259        } 
    265260      } 
    266261    } 
     
    278273    reset($qlist); 
    279274    while (list($key,$val)=each($qlist)) { 
    280       $db->query("SELECT value FROM defquotas WHERE quota='$key' AND type='$type'"); 
    281       if (!$db->next_record()) { 
    282         $db->query("INSERT INTO defquotas (quota,type) VALUES('$key', '$type');"); 
    283       } 
    284     } 
     275      if(!$db->query("REPLACE INTO defquotas (quota,type) VALUES('$key', '$type');")) 
     276        return false; 
     277    } 
     278    return true; 
    285279  } 
    286280 
     
    295289    reset($qlist); 
    296290 
    297     $db->query("UPDATE membres SET type='default' WHERE type='$type'"); 
    298     $db->query("DELETE FROM defquotas WHERE type='$type'"); 
     291    if($db->query("UPDATE membres SET type='default' WHERE type='$type'") && 
     292       $db->query("DELETE FROM defquotas WHERE type='$type'")) { 
     293      return true; 
     294    } else { 
     295      return false; 
     296    } 
    299297  } 
    300298 
Note: See TracChangeset for help on using the changeset viewer.