1

配列から最も一般的な値 (0 ではない) を見つける必要があります。私のコード:

   include ("db.php");
   $query = "SELECT poll1 FROM names";
   $res = mysql_query($query) or die(mysql_error());

    while ($row = mysql_fetch_array($res)) {
       echo  $row['poll1'];
    }

結果をエコーし​​ます (最小値 0 (デフォルト) および最大値 3):

1
1
0
0
0
2
3

最も一般的な値は「1」です。数値の配列が 7 つあるため、array_count_valuesを使用できません。

4

1 に答える 1

2

これは、SQL で解決する必要がある問題です。

まず、各オプションを選択した人数を取得します。

SELECT poll1, COUNT(*) AS count FROM names GROUP BY poll1;
+-------+-------+
| poll1 | count |
+-------+-------+
|     0 |     3 |
|     1 |     2 |
|     2 |     1 |
|     3 |     1 |
+-------+-------+
4 rows in set (0.00 sec)

わかりましたが、ゼロには興味がなく、 の最大値を持つ行のみを気にするcountので、降順countで並べ替え、結果を 1 つに制限する必要があります。

SELECT poll1, count(*) AS count FROM names
WHERE poll1 != 0
GROUP BY poll1
ORDER BY count DESC
LIMIT 1;
+-------+-------+
| poll1 | count |
+-------+-------+
|     1 |     2 |
+-------+-------+
1 row in set (0.00 sec)
于 2013-09-26T13:35:43.707 に答える