ギークなお姉さんは好きですか

恋焦がれる理想の男性・ギークを知るため、プログラミングがわかるお姉さんを目指すブログ

各ギークの最新ニュースを3つだけ表示する

日記

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 にした。idAUTOINCREMENT(オートインクリメント)。

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だった。私の絵心のなさは超ド級。