データを取り出す

昨日の続きです。

<?php
$sql = "SELECT * FROM bbs ORDER BY id DESC";
$res = mysql_query($sql, $db) or die("データ抽出エラー");

// 取得したデータを1件ずつ表示する
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
    echo "<hr>";
        echo $row["name"];
    echo "(" . date("Y/m/d H:i", strtotime($row["datetime"])) . ")";
    echo "<p>" . nl2br($row["com"]) . "</p>";
}
?>

これまたほとんどサンプル丸写しですが、考えながら見ていきます。

$sql = "SELECT * FROM bbs ORDER BY id DESC";

SELECT * FROM テーブル名 ORDER BY 条件
という文法ですね。
idは連番の一意の数字ですからwhileで表示するのに丁度いいです。
DESCは降順の意味で、無事に全件表示されました。

あとは日付の取り出しがstrtotimeでやるってこと…INSERT時にはdate("Y/m/d H:i")でしたけど、取り出す時はまたdateで取得し直せるみたい。

もっと考える。ページ分割表示。
x件ごとにページ送りを付ける。この場合は
SELECT * FROM テーブル名 ORDER BY 条件 LIMIT はじまりの数字,終わりの数字
で指定した範囲が得られる

これでページ送り実装できる!と思ったらひとつ問題が。
レコードの総数がわからない。countを使えばいいのか、どうもうまくいかない。次までの課題にする。