• ベストアンサー

BBSのレスを表示させるためのSQLについて

taketan_mydns_jpの回答

回答No.2

私ならクエリ2つ(親記事用、レス用)にします。無理に一つにしても何もメリット無いような。 既に遅いかもしれませんが(笑、私なら記事テーブルとレステーブルを同一にしますかね。こんな感じでしょうか。親記事IDが特定の値(0とかマイナスとか)の場合は、それが本当の親記事(ルート)と言う感じですね。 ID 親記事ID 内容.... こうしておけばとりあえずテーブルは一つですみますので、最新の記事&レス何件、と言うような表示は一発ですみますので。 参考まで。

関連するQ&A

  • ロケットBBSにYou Tubeの動画を貼る方法

    記事にYou Tubeの動画を貼っている ロケットBBS(無料版・Type-X)を見つけました。私もTou Tubeが好きなので、真似してみようとロケットBBSを作ったのですが、書き込んでもYou Tubeのタグが反映されません。何か設定しないといけないのでしょうか? どなたかよろしくお願いします…! ロケットBBS(Type-X) http://www.rocketbbs.com/bbs/x/index.html

  • SQL及びSMARTYの利用

    お世話になります SMARTYとmySQLを利用してサイトを構築しています。 下記の様なSQLデータからデータを一行ずつ生成したいです。 名前だけは取り出すことが出来たのですが、年齢の取り出し方が判りません。 アドバイスをお願い致します SQL------------------------------------------------------------------- ---------------------------- | id | namae | age | ---------------------------- | 1 | 田中 | 22 | ---------------------------- | 2 | 佐藤 | 29 | ---------------------------- PHP------------------------------------------------------------------- //空の配列を用意 $name = array(); //SMARTY用の代入変数を生成 while($data = $res -> fetchRow()){ array_push($name,mb_convert_encoding($data['namae'],"SJIS","UTF-8")); } $smarty->assign("namae",$name); HTML------------------------------------------------------------------ {foreach from=$namae item=namae} {$namae}{$age}<br> {/foreach} ----------------------------------------------------------------------

    • ベストアンサー
    • PHP
  • PHPとSmartyの関連について

    PHPとSmartyの関連について PHPからSmartyに出力しているのですが中身がNULLになります。 データベースアクセスにはPDOを使用しています。 PHPソース DBアクセス $SQL = "select ITEM_ID from ITEM_TBL limit 0, 3"; $STMT = $GLOBALS["PDO"] -> query($SQL); $ROW = $STMT -> fetchAll(PDO::FETCH_ASSOC); Smartyでアサイン $smarty -> assign("ITEM_LIST", $ROW); Smartyソース <table> {{foreach from=$ITEM_LIST item=LIST}} <tr> <td>{{$LIST.ITEM_ID}}</td> </tr> {{/foreach}} </table> のような感じでページ出力したいのですが、表示をすると中身がNULLでした。 PHP側で var_dump($ROW); を行うと array(3) { [0]=> array(1) { ["ITEM_ID"]=> string(1) "1" } [1]=> array(1) { ["ITEM_ID"]=> string(1) "2" } [2]=> array(1) { ["ITEM_ID"]=> string(1) "3" } } 中身が配列で格納されています。 smarty側で {$ITEM_LIST|@var_dump} を行うと array(3) { [0]=> NULL [1]=> NULL [2]=> NULL } でした。 いろいろとやってみたのですが、わからなくなってしまったので どなたかご教授いただけませんでしょうか。よろしくお願いします。

    • 締切済み
    • PHP
  • sqlの結果をprint出力

    データーベースが下記の様にあります、 PHPファイル内で、 この様なSQLを実行して下記の様にprintしてみましたが、 tie_upの部分、AIRとしか表示されません。 このPHPファイル内のprint($row['tie_up']);部分が怪しそうですが、 解決策が思いつきません。 もちろん、外部キーの設定も済んでいます。 --下記、SQL文-- SELECT * FROM ((((( song left JOIN kashu ON song.kashu_ID = kashu.kashu_ID) left JOIN sakushi ON song.sakushi_ID = sakushi.sakushi_ID) left JOIN sakkyoku ON song.sakkyoku_ID = sakkyoku.sakkyoku_ID) left JOIN hennkyoku ON song.hennkyoku_ID = hennkyoku.hennkyoku_ID) left JOIN tie_up ON song.tie_up_1_ID = tie_up.tie_up_ID) LEFT JOIN tie_up ti2 ON song.tie_up_2_ID = ti2.tie_up_ID --SQL文、終わり-- --下記、phpファイル内のprint文-- while ($row = mysql_fetch_assoc($result)) { print($row['tie_up']); } --print文、終わり-- --データベース-- song +-----------+--------------------+--------------------+--------------------+ | ID   | song_name | tie_up_1_ID | tie_up_2_ID | +-----------+--------------------+--------------------+--------------------+ | 0   | 鳥の詩    | 0       | 0      | +-----------+--------------------+--------------------+--------------------+ | 1   | 青空     | 1       | 0      | +-----------+--------------------+--------------------+--------------------+ tie_up +----------------+--------------------+------------------------+ | tie_up_ID | tie_up    | tie_up_yomi  | +----------------+--------------------+------------------------+ | 0     | AIR     | エアー      | +----------------+--------------------+------------------------+ | 1     | CLANNAD  | クラナド     | +----------------+--------------------+------------------------+ --データベース、終わり--

    • ベストアンサー
    • MySQL
  • SQLのテーブルの特定カラムでループ検索?

    説明が苦手でご迷惑をおかけします。 [denwa_table] id name telno 1 田中 080888866XX 2 山田 090999988XX 3 佐藤 050333366XX このようなテーブルがあり、 別で取得した 「0125815846584123584090999988XX3254158912_3546842」 のような文字列にID何番の人の電話番号が含まれているか 検索するPHPを作成しています。 初心者なので、いろいろわからないのですが、 特に理解できていないのが複数行の配列の操作です。 $sql = "select telno from denwa_table"; 電話番号部分のカラムだけをとってきてとかやればいいのでしょうか? 検索する部分は strstr($data,$data2)を使ったらできそうですが、SQLからとってきた番号の配列をどうやってループさせたらいいのでしょうか? わからないことだらけなのですがよろしくお願いします。

    • ベストアンサー
    • PHP
  • SQLの結果が返ってこない

    PHP+mysqlで以下のようなSQL文で処理を行ったのですがデータが返ってきません。 $sql = 'SELECT * FROM books WHERE id=3'; $recordSet = mysql_query($sql); if(mysql_fetch_assoc($recordSet)){ while ($table = mysql_fetch_assoc($recordSet)) {        処理     } } mysqlの画面で SELECT * FROM books WHERE id=3 を入力してみるとしっかりと結果が返ってきます。 ちなみに1行目を、違うテーブルの $sql = 'SELECT * FROM podcast WHERE code=3 ORDER BY dcdate DESC LIMIT 0,3'; にしてみると、データが表示されます。 2日間かけてずっと試行錯誤してみたのですが、完全に行き詰ってしまったので、何か考えられる原因はありませんでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPで、配列に値をうまく入れれません。

    PHP初心者です。 PHP、Mysqlを使い、検索サイトを作ろうとしています。 チェックボックスでチェックされた値を、一覧.phpに送り、 if(チェックされた値) { $sql1 = select * from table where like '%検索%'; } $sql1の結果を配列に入れて、そのidで以下のように絞込をしたいのですが・・・ $sql2 = select * from table id = $sql1(ここで例えば2,5,7とかって入ってほしい); ググってfetchやらなんやら試したのですが、2,5,7がはいってたとしたら、最後の7だけしか取り出せなかったりと苦戦しています。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • データベースの設定ファイルとSQL実行ファイルを分けたいです。

    はじめまして。 PHPを触り始めの者です。 今、mysqlに接続するPHPファイルを作って 接続までは行って成功はしました。 書き方としては、 http://www.phpbook.jp/tutorial/mysql/index3.html このページにあるような感じです。 その次に別でSQLを実行するPHPファイルを作り、 そこでSQLを実行することができません。 SQLは試した結果、間違いはないです。 SQL実行ファイル側でrequire_onceで 設定ファイルの読み込みさせて、次にすぐSQLを変数に入れて、 $result = mysql_query($sql)のような形で 出してみているのですが、 全然SQLの結果がprint_r($result)でプリントできません。 結果はたぶん配列状になる感じです。 何が悪いのでしょうか? 何か初心者でも見てわかる 簡単なDB接続専用ファイルとSQLコマンド専用ファイルを 分けて使ったサンプルソースなどがあれば教えてください。 全然、わからないのでそれに交えて解説していただけると 大変ありがたいです。よろしくお願いします。 またsmartyも使用できる環境みたいなので、 これをできれば使用したいのですが、 どのようにDBにつないだ ファイルを外部ファイルとして読み込みさせて 使用したらいいのでしょうか? 検索をかけてもpearとの絡みばかりでよくわかりません。 pearというものは調べた結果、 使用してるサーバ内に入ってない状態です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 重複データの表示方法

    お世話になっております。 またつまずいていますので、お知恵をお貸しください。 やりたい事は画像の一番下の売上表のような表を作りたいのです。 PDOで組んでいるのですが、 $SQL = "SELECT * FROM T_uriage JOIN T_kokyaku ON T_uriage.kokyaku_id = T_kokyaku.kokyaku_id JOIN T_shohin ON T_uriage.shohin_id = T_shohin.shohin_id" $uriage_ichiran = $db->prepare($sql); $uriage_ichiran->execute(array()) $uriage_ichiran01=$uriage_ichiran->fetch(PDO::FETCH_ASSOC)) ここまで取得できたのですが、売上表のようにする方法が思いつきません。 お力をお貸し下さい。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • sqlのJoinでこんなこと出来ますか、

    sqlのJoinでこんなこと出来ますか、 当方初心者につき宜しく御願いします。 テーブルAにはIDがありIDはユニークです。テーブルBにはIDと項目がありIDは複数件存在します。項目には「あ」又は「い」、「う」、「え」、「を」が入っています。idに対して「あ」だけの時もあれば、「い」、と「う」が存在する時もあります。1件または複数件存在します。 条件に「あ」を抽出するようにして、「あ」がないときは存在するがテーブルBには存在するという結果を作りたいのです。 ID=1、あ ID=2、NULL という結果を作りたいのです。テーブルの双方に存在して、かつ「あ」であれば「あ」以外はNULLのレコードを作りたいのです。 説明が悪くて申し訳ありませんが宜しく御願い致します。

    • ベストアンサー
    • MySQL