PHP bunu yapmak için bir kıvrımlara yol ağırlıkları bir ilişkisel dizi bildirmek için olacağını düşünüyorum, bu algoritma ile veriyi ayırır:
$weight=array(
1=>1,
3=>3,
4=>10
);
$result = mysql_query("SELECT `number` FROM `packages`");
$sum=0;
while ($row = mysql_fetch_assoc($result))
{
$n = $row['number'];
if (isset($weight[$n]))
{
$sum+=$weight[$n];
}
else
{
#handle error somehow, maybe with a default weight
die("Unexpected value $n");
}
}
Bir iyi bir alternatif bu tamamen veri odaklı yapmak olabilir ve bir tabloda ağırlık vereceğini
#create and populate the weights table
create table weight (number int, weight int, primary key(number));
insert into weight (number,weight) values (1,1),(3,3),(4,10);
#figure out total weight
select sum(weight) from package inner join weight using(number);
Veritabanında ağırlıkları ile, ağırlıkları ayarlamak için uygulamanızın kullanıcılarına alloww bir UI sağlayabilir.