phpのツリーのアルゴリズムがわかんねんんだよ!

1nobodyさん02/03/10 17:26ID:G6SLgnQA
教えてください(´Д`;)
mysql使って普通の掲示板は組めたんですがそれにレスできる
こんな感じ↓
コメント1
コメント1
コメント1に対するレス
コメント1
簡単なサンプルで解説してください
本スレで教えてもらったけど何度が高すぎました。。
>>2
掲示板ソース、コレにコメント付けれるように直すにはどうすれば
いいんでしょうか?

16困った1(´Д`;) ◆JjsLsZzw 02/03/11 19:03ID:6zR1ua/0
>>15
普段は付けてるけど、エラー処理入れると
ここに書き込めないので省いたんです、、
それよりそれより、、ソワソワ

17nobodyさん02/03/11 19:12ID:???
ID,親記事ID,ツリーID
これくらい用意しろ

関数化しねぇと再帰できないぞ。再起不能

18困った1(´Д`;) ◆JjsLsZzw 02/03/11 19:16ID:6zR1ua/0
>>17
とりあえずそれ組んでみます
ありがとうございます。

19nobodyさん02/03/11 21:36ID:???
メッセージID(自分ID)と親IDだけあればいいんでないの?

20困った1(´Д`;) ◆JjsLsZzw 02/03/11 21:56ID:6zR1ua/0
>>19
とりあえずDBでoyaidとtreeid作りました(msgnoは最初からある)
今日は寝るので明日指導してくだちゃい。おやすみなさい、、

211302/03/12 00:41ID:???
>>19
禿同。単なる有向グラフと思われ。

22困った1(´Д`;)02/03/12 15:55ID:BOgC8D8B
treeID作りました!型はintですがいいんでしょうか?
これをレス型にするにはどうすれば・・?
レス型に書き直してください(;;)
<?php
$db=mysql_connect("localhost","*****",****);
mysql_select_db(tree);
if($name&&$msg)
{
$msg=ereg_replace("\r\n|\r|\n","<BR>\n","$msg");
mysql_query("insert into tree(datetime,name,msg) values(now(),'$name','$msg')");
}
$hoge="select * from tree order by msgno desc";
$sql=mysql_query($hoge);
while($array=mysql_fetch_array($sql))
{
$msgno=$array[msgno];
print("投稿番号$msgno<BR>");
print("投稿者:$array[name]  投稿時刻:$array[datetime]<BR>");
print("<BR>$array[msg]<HR>");
}
?>
</BODY>
</HTML>

23nobodyさん02/03/12 16:22ID:???
「レスをする」ということで、レスをするツリーIDを渡す

24困った1(´Д`;) ◆JjsLsZzw 02/03/12 16:26ID:BOgC8D8B
>>23
というと?それは具体的に何をするんでしょうか?
あたいの脳がその部分だけかけていて考えられないのです!
サンプル組んでください!

25nobodyさん02/03/12 16:43ID:???
人に教えるのって面倒だな・・・

26nobodyさん02/03/12 17:01ID:???
サンプル組むってほどのものかよ。。。

セッションでツリーID渡すかINPUTタグのHIDDENで仕込んどけ

271302/03/12 19:18ID:???
そろそろ放置かな。

28nobodyさん02/03/13 08:16ID:???
だから親のIDを持っとくんだってばさ
mysql_query("insert into tree(datetime, name, msg, refid) values(now(),'$name', '$msg', '$oyaIDne')");

あとは再帰でツリーは描けるから。

29nobodyさん02/03/13 15:49ID:???
PHP4サンプル集 秀和システム 著 山田祥寛
ここにそのまま載ってるぞ
よって
===============終了===============

30困った1(´д`) ◆JjsLsZzw 02/03/13 16:34ID:bTyUwLh6
>>29
買ってきます!
あと最後にこれ教えてください、自分でソース読んだけどしくみが
わからん、ツリーはわかったけどこれができなきゃね♪
質問スレでも聞いたけど、マルチじゃないよ
http://www.dcl.info.waseda.ac.jp/~hasegawa/php/bbs.html
ここのスクリプトで
http://www.dcl.info.waseda.ac.jp/~hasegawa/php/source/bbs1/bbs1.php
これのレスの中身を見るときprint_numbe
使ってますけどこれどういう仕組みなんでしょうか?
これ最後で!タノンます(´д`)
トリップも公開します!#ore

31nobodyさん02/03/13 16:42ID:???
根気のいい俺でもそろそろ限界か?
リンクに貼ってあるprint_numberっていうパラメータのこと聞いてるんだよ
ね?
君は基本的にCGIを1から勉強した方が良いかと思われ。
>>29で紹介した本を買って、その他いろんなドキュメントを読んでみれ。

32nobodyさん02/03/13 16:43ID:???
ついでに
再帰もほどほどの件数にしとかないとメモリ食うからね。

33nobodyさん02/03/13 18:56ID:OqBWlBtp
>>30
http://www.dcl.info.waseda.ac.jp/~hasegawa/php/source/bbs1/bbs1.php?print_number=1
って言うふうに使うのだと思われ

34nobodyさん02/03/13 19:00ID:OqBWlBtp
>>30
ごめん、間違えた(汗)

http://www.dcl.info.waseda.ac.jp/~hasegawa/php/source/bbs1/bbs1.phps
http://www.dcl.info.waseda.ac.jp/~hasegawa/php/source/bbs1/show_contents1.phps

この辺見れ。EUCだけどナー

35◆JjsLsZzw 02/03/13 19:10ID:bTyUwLh6
>>34
(゚д゚)ハッ!良く見直してみたらわかった!
ツリーの仕方もログ読み直してわかった!
ありがとうございます!!!1111!!!
しばらくがんばってみますね!
できそうです。
あとあのサンプルスクリプト集って本いい本なんですかねぇ?

36nobodyさん02/03/13 19:11ID:OqBWlBtp
再起だけど

function tree ($parent = 0) {
$result=mysql_query("select * from tree where parent = $parent order by no desc");
while($array=mysql_fetch_array($result))
{
print("{$array[no]}");
print("{$array[name]}");
print("{$array[date]}");
print("{$array[msg]}");

tree($array[no]); // 再起呼出
}
mysql_free_result($result);
}

ってやればイイと思われ。
ちなみに動作未確認。
あとは自分で頑張れ。

371 ◆JjsLsZzw 02/03/13 19:46ID:???
>>36
ありがとう(p_`)
こんなに優しくされたの初めてだよ、これをリファレンスにするよ

38nobodyさん02/03/14 02:24ID:80hRLeB+
あ、ちょっとどうでもイイけど、
print 使うより echo 使ったほうが早いよ。

39nobodyさん02/03/18 17:09ID:???
>>38
そうなん?
printは値を返すからその分スピードがechoの方が速いって解釈で
いいのかな?
ってかprintってエイリアスなのだろうか。

40真実03/01/02 16:46ID:???
 あるネット関連会社の社長は、「いずれにしても2ちゃんねるは
資金が底をつけば終わり。あまり知られていないことだが、
2ちゃんねる内部関係者によると今、大手通信会社系が調査費名目で資金提供している。
だが、それが止まれば続けてはいけないだろう」と証言する。
2ちゃんねるが判決によって力を失った場合、資金提供の打ち切りも予想される。
http://ascii24.com/news/reading/causebooks/2002/07/01/636911-000.html

 以下、別の記事のキャッシュ http://memo2ch.tripod.co.jp/article.html
 2ちゃんねるに近いあるインターネット関連会社の社長は、2ちゃんねるの幹部から得
た話として証言する。「2ちゃんねるは、運営者や幹部などがそれぞれ別々に会社を
作りカネの流れを見え難くしているが、実際の資金源は複数の大手通信会社系からの
調査費名目のカネ。月額で計約700万円と言い、年間にすれば1億円近く。額はともあ
れ、これは通信会社系的には、ぼう大なトラフィックを調査すると言う表向きの理由
が一応は立つ。自社系に都合の悪い書き込みがされた時に優先的に削除してもらうこ
とも期待している」と前置きし「通信会社系の削除の期待も含めて、2ちゃんねるは
総会屋と同じになっている」と言うのだ。
 その具体的な理由として社長は、こう話す。「2ちゃんねるはボランティアの削除人
が書き込みをチェックして、好ましくない書き込みを一所懸命削除している、という
ことになっているが、あれはウソ。削除人には給料が支払われ、その給料の原資と
なっているのが、まずいことを書き込まれた企業が削除要求とともに渡す裏金。これ
はまさに、総会屋の構図そのものだ。これまで裁判になっているのは金額で折り合え
なかったり、裏金を出さない強い態度の企業とだけだ」

41山崎渉03/01/15 13:38ID:???
(^^)

42山崎渉03/03/13 17:42ID:???
(^^)

43nobodyさん03/03/13 19:06ID:???
>>39
何かagaってるのでついでに書いておくと、ソース見れば判る
(エイリアスの定義があるのでCがそんなに読めなくても判るよ)けど、
エイリアスじゃないです。リファレンスで調べても戻り値のある/なしや
引数の違い(,区切りで複数OKなど)もあるので、その辺でも判るかと。

44山崎渉03/04/17 12:17ID:???
(^^)

45山崎渉03/04/20 06:17ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

46山崎渉03/05/22 02:18ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

47山崎渉03/05/28 17:11ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

48t-akiyama03/05/30 21:47ID:???
携帯ゲーム機"プレイステーションポータブル(PSP)

 このPSPは、新規格UMD(ユニバーサルメディアディスク)というディスクを利用しており、そのサイズは直径6cmととても小さい(CDの半分程度)。 容量は1.8GBとなっている。
画面は4.5インチのTFT液晶で、480px x 272px(16:9)。MPEG4の再生やポリゴンも表示可能。外部端子として、USB2.0とメモリースティックコネクタが用意されているという。

この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。

49山崎 渉03/07/15 11:23ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

50山崎 渉03/08/02 02:30ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

51ぼるじょあ ◆ySd1dMH5Gk 03/08/02 05:04ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

52山崎 渉03/08/15 23:22ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

53nobodyさん04/06/17 09:14ID:???
便乗質問、
HTMLに関する質問ですが、ツリーのアルゴリズムについてなので。。。

HTMLタグの<ul><li><li></ul>をネストして書こうと思っているのですが、
データベースを使っていたりデータベースをチューニングしてる関係などにより、

各項目について、
●上から何番目か($nとします)・・・@seq =(1,2,3,4,5,6,7,8,9,10)とし、$nには1,2,3,4,..10が入ります
●階層の深さが何階層目か($depth[$n]とします)
●項目名($name[$n]とします)

しかわかっていません。

★参考:<ul><li></li></ul>の見た目とソースの対応を、下記URLにおいておきます。
http://31.com/tmp/ul_algorithm.html


で、やりたいのはこれらの情報を使って
*上から順*にソースを書き込んでいきたいということです。
そのためのアルゴリズムがわからずに苦慮しています。

$depth[n]=$depth[n-1]のときは、
単に<li>name(n)</li>と書けばいいことは自明です

しかし、それ以外のパターンのアルゴリズムがわからず。。。

なお、アルゴリズムの考え方やそのヒントでも、phpでやperlのソースでも、
あるいは、ヒントだけでもいいので、教えていただければ幸いです。

545304/06/17 23:25ID:hAY00qtb
どなたかお願いします。

55nobodyさん04/06/18 08:59ID:???
> しかし、それ以外のパターンのアルゴリズムがわからず。。。
行頭 → <ul> * $depth[n]
$depth[n-1]-$depth[n]=1 → <ul>
$depth[n-1]-$depth[n]=2 → <ul><ul>
$depth[n-1]-$depth[n]=-1 → </ul>
行末 → </ul> * $depth[n]

単純にこれじゃダメかい?

565304/06/19 00:51ID:???
>>55さん、ありがとうございます。そうか、ulとliをいっぺんに考えてたから、混乱してました。
最初にulを考えて、そのあとliを考えたらうまくいきました。参考までにそのソース。

while ($row = pg_fetch_array($rs)) {
    $n++;
    $depth[$n] = $row[depth];//深さ(最小は1)
    $name[$n] = $row[name];//項目名

    //わかりやすく
    $now_depth = $depth[$n];
    $name = $name[$n];

    //</li></ul>を挿入
    $ul_li_insert = $before_depth - $now_depth;
    if ($n >= 2) {
        if ($ul_li_insert >= 0) $HTMLcattree .= "</li>\n";
        for ($i=1;$i<=$ul_li_insert;$i++){
            $HTMLcattree .= "</ul>\n";
            $HTMLcattree .= "</li>\n";
        }
    }

    //<ul><li>を挿入
    $ul_li_insert = $now_depth - $before_depth;
    for ($i=1;$i<=$ul_li_insert;$i++){
        $HTMLcattree .= "<ul>\n";
    }

575304/06/19 00:51ID:???
(つづき)
    $HTMLcattree .= "<li>\n";

    //項目名を表示
    $HTMLcattree .= $name;

    //「前の項目の階層数」として使う
    $before_depth = $now_depth;

}

//締めの、</li></ul>を挿入
$ul_li_insert = $before_depth;
$HTMLcattree .= "</li>\n";
for ($i=1;$i<=$ul_li_insert;$i++){
    $HTMLcattree .= "</ul>\n";
    $HTMLcattree .= "</li>\n";
}
$HTMLcattree .= "</ul>\n";

print $HTMLcattree;

//ありがとうございました。

58125x100x255x204.ap125.ftth.ucom.ne.jp2006/03/30(木) 00:25:16ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

59st0004.nas931.miyazaki.nttpc.ne.jp2006/03/30(木) 06:12:25ID:???
てst

60nobodyさん2006/08/22(火) 10:16:04ID:???
コンピュータサイエンスの基本として、データ構造〜とりわけツリーの扱いは基本かつ大事なんですね。

61nobodyさん2009/05/09(土) 16:15:08ID:unp/QYBC
>>1
 Z
  z
  z
 <⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄

62nobodyさん2011/11/21(月) 15:28:47.26ID:???
てすと

  ∧_∧
  ( ・∀・)      | | ガガッ
 と    )      | |
   Y /ノ      .人
    / ) .人   <  >_∧∩
  _/し' <  >_∧∩`Д´)/
 (_フ彡 V`Д´)/   / ←>>50
            / ←>>45

64nobodyさん2013/12/28(土) 23:28:41.33ID:xIlaW9Uf
グーグルの検索エンジンのアルゴリズムについて
http://webblogsakusei.main.jp/seo_taisaku_syukyaku.html

65nobodyさん2015/07/01(水) 23:17:51.44ID:iZaoy2dm

66nobodyさん2017/12/30(土) 16:03:24.14ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

Z1UWE85V4W

新着レスの表示
レスを投稿する