日記
Hey! Say! JUMPに萌えたら負けかなと思っている。
任意の id の最新ニュースを n 個取り出す
GeeklyNews が蓄積するにつれて募る、いわれのない焦燥感。
エントリに羅列してるだけじゃ、もったいない気がする。
せっかくなので、データベースと関連付けたい。
そうだ!個別ページで各ギークさんの最新ニュースを表示させればイイネ!
これはたぶん・・・どうにかすればできるはず・・・。
何も考えず浅はかに geekDB(テーブル)に news というフィールドを追加してみる。
んんん。違う。ここに毎回ニュースを手動で入力して更新するようじゃダメだ。
そんなんじゃなくて、勝手に各自の最新ニュースがうまいこと表示されるような、
データベースらしいラクちんな方法がぜったいにあるはず><
最低でもニュースの内容と name_id、日付も必要だから・・・ってことは、
あ。テーブルを別に作ればいいんじゃないだろか?
news というテーブルを作って、name_id=yusukebe のニュースを新しい順に並べて、
そこから最新3件くらいを表示するように指定すればいいんじゃ?
そうだ、確かSQL構文でそんなことはできた気がする。できたということはできるということだ。
select topic from news where name_id = ? order by id desc limit 3
ニュース内容のフィールド名は topic にした。idは AUTOINCREMENT(オートインクリメント)。
AUTOINCREMENTを指定すると、自動的に整数を順次増加させてくれて値を格納します。
参考:AUTOINCREMENT - テーブルの作成 - SQL入門
いま掲載してるニュースを古い順にどんどん入れていくと、自動で id が振られる。
それを逆順に並びかえれば新しい順になるね(・∀・)
order by id desc
SELECT ... ORDER BYを使用して問い合わせすると、
データを列ごとに昇順または降順でソートすることができます。
参考:SQL入門その11 - SELECT ... ORDER BY文によるデータの並べ替え - データベース入門
limit 3
この並べ替えのクエリの最後にLIMIT n を追記することで、
その数だけ(つまりベストn)のリストになります。
参考:MySQL入門以前
このSQL文を prepare して、execute!
空いてるスペースに強引に入れてしまったのでデザイン的にはイケてないけど、そこはカンニンな><
美術の成績はいつも2だった。私の絵心のなさは超ド級。