[PHP-users 24983] Re: 返信機能付き掲示板について

Seto seto @ 1kg.jp
2005年 3月 20日 (日) 18:02:06 JST


 Setoです。

中略

>> 3.最初の投稿のrootidはmessidと同じ値をセットしておく。
>このあたりからよく分からなくなってきました。

表現がわかりづらかったかもしれません。
  最初の投稿データを保存するときに
  そのデータのrootidフィールドの値は
  そのデータのmessidフィールドの値をセットしておく。
ということです。

これは4または5のデータ抽出をするときに最初の投稿データも
一緒に拾い出させるために楽をしようとしているだけです。

>> 4.表示のときはrootidが同じものだけDBより拾い出す。
>ちょっとMYSQLの話になりますけど、同じものだけなんてどうやって指定
>するんですか?

 SELECT * FROM テーブル WHERE rootid=xx;
 xxは拾い出したい投稿の根源となるデータのmessidです。
 同じrootidのデータのみ抽出されます。
 このとき WHERE rootid=xx ORDER BY messid; としたほうが良いでしょう。
 messidでソートされて拾い出されます。

前述3の「最初の投稿データのrootidにはmessidをセット」とは
しなかった場合のSQLは
  SELECT * FROM テーブル WHERE rootid=xx OR messid=xx;
となります。

>> 5.または表示のときはrootidとmessidでソートをかけてDBより拾い出す。
>これはさっぱりです。

 SELECT * FROM テーブル ORDER BY rootid,messid;
 こちらは 同じrootidでmessid順にソートした全データが拾い出されます。

こんな感じでしょうか。
たしか前の投稿でphpmyadminを利用されていると書かれていましたよね。
ブラウザインターフェースで条件指定した結果、生成されたSQLが表示されたと
思いますので、それを確認してみるのもひとつです。

素朴な掲示板でしたらSQLの基本的部分だけ覚えればできますので
勉強したほうが、結果的に近道だと思います。
PHPで書かれたフリーの掲示板スクリプトとかもありますので
それを見るというのも一つかもしれません。

Junya Seto


PHP-users メーリングリストの案内