このコードを使用して総投票数を見つけようとしています。12 の基準があります。したがって、各 SHOP_ID の TOTAL を合計し、12 (合計を作成するために使用される列の量) で割ります。COUNT(shop_id) はショップの数を見つけます。たとえば、2 つの shop_id 入力がある場合、1 つは合計 0 (0 の 12 エントリ) で、もう 1 つは合計 60 で、12 の基準で割ってから shop_id カウントで割ったものです。 of 2 (60/12)/2 = 2.5 結果を 5 にしたいのですが、除算で 0 の列を数えないでください。
$sel = mysql_query("SELECT SUM(comfort + service + ambience + mood + spacious +
experience + cleanliness+ price + drinks + food + music + toilets)/(12/COUNT(shop_id) as total
FROM ratings
WHERE shop_id = $shop_id");
if(mysql_num_rows($sel) > 0){
while($data = mysql_fetch_assoc($sel)){
$total = $total + $data['total'];
$rows++;
}
$perc = ($total/$rows);
return round($perc,2);
} else {
return '0';
}
達成しようとしていることを視覚的に表示する画像を提供した方がよいでしょうか?
各行は 1 票ではなく、各 shop_id は 12 票です。各列のカテゴリ名: 快適さ + サービス + 雰囲気 は列 ID であり、そのフィールドへのエントリは 1 票です。1 つの基準に投票した場合、他の 11 が 0 である場合、12 を 1 票としてカウントし、間違った結果を返します結果、2 で割ると正解の半分になるため
視覚的な例をアップロードし、テスト目的で評価列を 12 から 7 に短縮しました。