0

mysql データベースに projectstatus があります。ステータスに応じて、1、2、または 3 になります。また、進行状況を確認するために幅を設定できる CSS ステータス バーもあります。

コード例は次のとおりです。

<td>" . $projstatid ."
    <div class='meter-wrap'>
        <div class='meter-value' style='background-color: #0a0; width: 33,3%;'>
            <div class='meter-text'></div>
            </div>
    </div>
</td>

これで、次のような幅のサイズで 3 つの if ステートメントを実行できます。

if ($projstatid) = 1 { echo "33.3%"; } elseif {..} else {...}

しかし、 の値に達するまで数値をループする単純なループを作成するにはどうすればよい$projstatidですか?

ループがループの時間を projstatids の最大量で割った場合は、さらに良いでしょう。しかし、この基本的なループが機能したら、それを理解します。

編集

私がやろうとしているのは、これを行うループを作成することです:

x=1
y=0
$projectstatid = $record['projectstatid'] (in this example lets say it's 5)

loop: x=1, is it 5? Nope. return: y= +20%
loop: x=2, is it 5? Nope. return: y= +20%
etc.

5 になるまで (100% を返します)

4

3 に答える 3

2

次のようにして、現在の値に対応するパーセントを計算できます。

$percent = floor($number * 100 / $nbmax);

$percentCSS に入力する値は次のとおりです。これは$number現在のステータスで$nbmaxあり、可能な最大値です。

あなたの場合、あなたは次のようになります:

$number  = $record['projstatid'];
$nbmax = 3;
$percent = floor($number * 100 / $nbmax);

編集:あなたの編集に基づいて、次のようなものが必要だと思います:

$number = 5;
for($i = 1 ; $i < $number; $i++) {
    $percent = floor($i * 100 / $number);
    echo $percent;
}
于 2012-12-05T14:52:06.783 に答える
1

$xまでインクリメントする代わりに、 (一種のループです)を$x == $projectstatid使用できます。switch

switch ($projectstatid)
{
    case 1:
        $y = '20%';
    break;
    case 2:
        $y = '40%';
    break;
    //etc, until the max is reached, in which case:
    default:
        $y = '100%';
}

ステートメントに関するすべての情報については、ドキュメントを参照してください。 また、 this:がコードのように見える場合、が割り当て演算子であり、変数への割り当てはほとんどの場合 true を返すため、 echo-ing を続けることは驚くことではありません。また、括弧は本来あるべき場所にありません。次のようになります。switch
if ($projstatid) = 1 { echo "33.3%"; } elseif {..} else {...}33%=

if ($projstatid == 1)
{
    echo "33.3%";
}
else if ($projstatid == 2)
{..}
else {...}
于 2012-12-05T15:09:40.233 に答える
0
<?php $meter_val = 0; ?>
<?php if ($projstatid <= 5) $meter_val = ($projstatid * 20);
<td>" . $projstatid ."
 <div class='meter-wrap'>
  <div class='meter-value' style='background-color: #0a0; width: <?php echo $meter_val; ?>%;'>
    <div class='meter-text'></div>
  </div>
 </div>
</td>
于 2012-12-05T15:07:12.037 に答える