現在、MYSQLとPHPの勉強をしている初心者です。
今回、数千件のレコードを持ったテーブルの中から条件を指定して
HTMLにて表示するというサイトを勉強しながら作成していたのですが、
問題を色々調べたり、ネットで調べても解決する事が出来なかった為、質問をさせて頂きました。
【理想:実現したい事】
数千件のレコードのあるmysqlのテーブルの中から
「カテゴリ名」が一致しており、「日付の新しいもの(新着)」から10件抽出して
さらに抽出した「10件」の中から
特定の値(PV数など)が大きい順に並び替えてHTMLにて表示するという事をやりたいです。
【試してみた事:現時点の状態】
ネットや書籍で色々調べてみた結果以下のコードで
「カテゴリ名の一致」と「日付の新しいもの(新着順)」を「10件」抽出するという所まではいけました。
(カテゴリ名:サッカー、created:日付が入っています。)
PHP
1public function getnews() { 2 $stmt = $this->_db->query("select * from bbs where category = 'サッカー' order by created desc limit 10"); 3 return $stmt->fetchAll(\PDO::FETCH_OBJ); 4} 5
この後の処理なのですが、
上手く抽出した10件の中から「PV数(特定の値)」が多い順に並び替えるという処理が上手くいきません。
2種類の「order by」を使えばいいのでは?と初心者なりに考えてネットで色々と調べてみました。
参考にしたサイト:
https://www.dbonline.jp/sqlite/select/index2.html
「order by」の2種類設定の方法を使って「created,pv(PV数)」という風にしても上手く行きませんでした。
(pvの順番に大きい順からも小さい順からも並び替えが起きていませんでした。)
PHP
1 $stmt = $this->_db->query("select * from bbs where category = 'サッカー' order by created,pv desc limit 10");d 2
他にもネットに書いてある事を自分なりに色々試してみたのですが
上手くいかず、困っています。
「カテゴリ名」が一致しており、「日付の新しいもの(新着)」から10件抽出して
さらに抽出した「10件」の中から
特定の値(PV数など)が大きい順に並び替えを行う方法について
ご存知の方がいらっしゃいましたら、
お力をお貸し頂けると嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/02 16:24