0

基本的に私は、ユーザーがスポーツ イベントを投稿できるようにする Web サイトをコーディングしています。その後、メンバーは各イベントを評価できます。評価システムは、0.5、1.0、1.5、2.0、2.5、3.0、3.5、4.0、4.5、5.0 の 10 点システムです。

次の 4 つのカテゴリがあります。

組織、お金に見合う価値、施設、楽しい要素

フィールドを使用して mysql データベースに値を保存しfloatます。

システムをテストするために、次のダミー データを使用しました。

  • 組織 = 2、v4m = 4.5、fac = 4、楽しみ = 2.5;
  • 組織 = 3.5、v4m = 4、fac = 4.5、楽しみ = 1.5;
  • 組織 = 1、v4m = 5、fac = 4.5、楽しみ = 2.5;

上記に基づいてイベントの評価を表示する場合、各カテゴリを上記の 5 つ星評価システムに四捨五入します。

これまでのところ、丸めを除いて問題なく動作するように見える次のコードがあります。

例: 現在、3 つの組織評価の平均は、四捨五入2.1666666666667したい2.0です。平均が になる場合は、4.6666666666667に丸めたいと思い4.5ます。

しかし、どうすればこれを行うことができますか?

これまでの私のコードは次のとおりです。

// Count how many ratings this event has
        if($ratingCount = $event->getEventRatingCount($event_id)){

            // Get ratings for this event
            $eventRating = $event->getEventRatings($event_id);

            $organisation = 0;
            $valueForMoney = 0;
            $facilities = 0;
            $funFactor = 0;
            $overall = 0;



            foreach($eventRating AS $rating){
                $organisation   = ($organisation + $rating['organisation'] / $ratingCount);
                $valueForMoney  = ($ValueForMoney + $rating['value_for_money'] / $ratingCount);
                $facilities     = ($facilities + $rating['facilities'] / $ratingCount);
                $funFactor      = ($funFactor + $rating['fun_factor'] / $ratingCount);
            }
            echo '<br />';
            echo $organisation . '<br />';
            echo $valueForMoney . '<br />';
            echo $facilities . '<br />';
            echo $funFactor . '<br />';
            echo $overall = ($organisation + $valueForMoney + $facilities + $funFactor) / $ratingCount); 

        }else{
            // no ratings for this event
        }

ダミーデータを使用して、現在これらの値を取得しています。

2.1666666666667
1.6666666666667
4.3333333333333
2.1666666666667
3
4

2 に答える 2

4

評価に 2 を掛けて、1 ~ 10 の範囲にマッピングできます。次に四捨五入して2で割ります。

$overall = round(2*$overall)/2;

これは、4.666 を 4.5 に、2.1666 を 2 にマッピングします。3.888 の評価は 4 に切り上げられます。常に切り捨てたい場合は、floor代わりに を使用しますround

于 2013-09-27T11:53:10.430 に答える
0

各評価をデータベースのテーブルに保存します。例: テーブル

ID | 評価

1 | 4.5

2 | 3.5

3 | 3.0

次に、そのテーブルからすべての値を取得し、すべての結果の平均を作成するクエリを作成します

基本的に、すべての結果をどこかに保存してから、平均を計算するだけです

次に、平均に応じて、必要なものを表示するスイッチまたは if ステートメントを作成します。

申し訳ありませんが、数値/評価が期待どおりに表示されませんでした...

于 2013-09-27T11:52:44.077 に答える