テーブル名:listBOX
no | name | vot1 | vot2 | vot3 |
---|---|---|---|---|
5 | 阿部 | 63 | 1 | 6 |
63 | 堂上 | 7 | 3 | 11 |
11 | 小笠原 | 5 | 6 | 3 |
1 | 京田 | 1 | 11 | 6 |
6 | 平田 | 1 | 11 | 6 |
3 | 高橋 | 1 | 11 | 3 |
7 | 根尾 | 63 | 5 | 3 |
PHP
1$count = <<<EOT 2select 3vot, count(vot) 4from 5( 6SELECT vot1 as vot FROM listBOX WHERE vot1 is not null 7union all 8SELECT vot2 as vot FROM listBOX WHERE vot2 is not null 9union all 10SELECT vot3 as vot FROM listBOX WHERE vot3 is not null 11) 12group by vot 13order by count(vot) DESC 14EOT; 15$st = $pdo->query($count); 16$st->execute(); 17$agg = $st->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_UNIQUE);
実行結果
Array
(
[1] => 4
[11] => 4
[3] => 4
[6] => 4
[5] => 2
[63] => 2
[7] => 1
)
望む実行結果
Array
(
[1] => 4
[3] => 4
[6] => 4
[11] => 4
[5] => 2
[63] => 2
[7] => 1
)
選挙のような投票システムを作っています、1人3票まで投票できるシステムです
SQLは知識が乏しいのですが、いろいろなサイトを調べ票数の集計まではこぎつけました
最後のソートで手詰まっています、どうかご教授ください
selectで[vot」と宣言しているのですがここに何故「no」カラムの数値が入るのかも疑問なくらいの素人です。
本題としては配列のキーを数値としてソートしたいのですがうまくいきません
###試したこと
PHP
1order by count(vot) DESC, TO_NUMBER(vot) ASC 2//Fatal error: Uncaught Error: Call to a member function execute() on bool 3//$st->execute(); <= の行に上記エラー 4 5order by count(vot) DESC, CONVERT(int,vot) ASC 6//Fatal error: Uncaught Error: Call to a member function execute() on bool 7//$st->execute(); <= の行に上記エラー
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。