探検


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

1nobodyさん
垢版 |
02/03/10 17:26ID:G6SLgnQA
教えてください(´Д`;)
mysql使って普通の掲示板は組めたんですがそれにレスできる
こんな感じ↓
コメント1
コメント1
コメント1に対するレス
コメント1
簡単なサンプルで解説してください
本スレで教えてもらったけど何度が高すぎました。。
>>2
掲示板ソース、コレにコメント付けれるように直すにはどうすれば
いいんでしょうか?
2nobodyさん
垢版 |
02/03/10 17:26ID:G6SLgnQA
エラー処理は省いてます
<?php
$db=mysql_connect("localhost","***",***);
mysql_select_db(bbs);
if($name&&$msg)
{
$msg=ereg_replace("\r\n|\r|\n","<BR>\n","$msg");
mysql_query("insert into bbs values(now(),'$name','$msg')");
}
$hoge="select * from bbs order by time desc";
$sql=mysql_query($hoge);
while($array=mysql_fetch_array($sql))
{
print("投稿者:$array[name]  投稿時刻:$array[time]<BR>");
print("<BR>$array[msg]<HR>");
}
3nobodyさん
垢版 |
02/03/10 17:28ID:G6SLgnQA
DB構造
時間
名前
本文


知ってる方がおられたら伝授してください
4困った1(´Д`;)さん ◆JjsLsZzw
垢版 |
02/03/10 17:31ID:G6SLgnQA
自分なりに調べたところユニークなID持たせるっていいますよねぇ
ぶっちゃけどうやってID持たせるの?(゜q゜)ボケー
って感じでわけわかんないんです(;;)
5mySQL
垢版 |
02/03/10 18:00ID:???
auto_increment。
6困った1(´Д`;)さん ◆h49ANHg2
垢版 |
02/03/10 18:10ID:G6SLgnQA
>>5
というと?
その型が関係してるのとかまでは探れたんですが、、
後がまったくなんです、、、(;;)
それをどう利用したらいいんでしょうか?
02/03/10 21:58ID:???
全文載せてみて
02/03/10 22:35ID:???
「ん」がひとつ多い
02/03/11 01:23ID:???
ツリーっつーのはさ、再帰だよ。サイキっく
10nobodyさん
垢版 |
02/03/11 03:38ID:IZPenvnO
シーケンスわかんねぇなら発言毎に
インクリメントしてしまっとけば。
11困った1(´Д`;)さん ◆JjsLsZzw
垢版 |
02/03/11 09:24ID:6zR1ua/0
みなさんおはようございます!!!!!!!!!!!!

>>7
ソースのエラー処理もでしょうか?
>>8
日本語の問題?
>>8
その再帰するまではわかったんですが、どうやって再帰するのか
想像できないんですよ、サンプルみしてください(;;)
>>10
インクリメント自体はできるのですが、、それをどう利用するんですか?
02/03/11 10:43ID:???
的外れならスマソ

ツリー番号をつける。これにはシーケンス使ったりシーケンス知らない場合
はインクリメントとかで対処しろ。
このツリー番号を元に、返信なら同じツリー番号、新規発言なら新しい番号
を付与。
記事を表示する場合は同じツリー番号の集団を表示すればよい。


02/03/11 16:30ID:???
カキコした順に通し番号を1から振っていく。それがそのカキコについた名前。
レスをつけたいときにはその名前で指名する。
表示するときは指名されたものをうしろにくっつける。
14困った1(´Д`;) ◆JjsLsZzw
垢版 |
02/03/11 18:03ID:6zR1ua/0
>>12
>>13
とりあえずこれ作ってみたんです、番号が1upしれくやつ
これで bbs.php?msgno=[ここに選択NO]にアクセスしてみても反応無しなんです
これに反応でるようにするにはどうするんでしょうか?
まずここからでいいのかな・・・?
ドキドキ
<?php
//DB構造
//msgno これint primary key auto_increment,
//datetime
//name
//msg
$db=mysql_connect("localhost","hodaka",124);
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))
{
print("投稿番号:$array[msgno]");
print("投稿者:$array[name]  投稿時刻:$array[datetime]<BR>");
print("<BR>$array[msg]<HR>");
}
?>
</BODY>
</HTML>
02/03/11 18:41ID:???
>>14
なぜ皆mysql_query()のエラーチェックをしないのかと小一時間……(以下略)
16困った1(´Д`;) ◆JjsLsZzw
垢版 |
02/03/11 19:03ID:6zR1ua/0
>>15
普段は付けてるけど、エラー処理入れると
ここに書き込めないので省いたんです、、
それよりそれより、、ソワソワ
02/03/11 19:12ID:???
ID,親記事ID,ツリーID
これくらい用意しろ

関数化しねぇと再帰できないぞ。再起不能
18困った1(´Д`;) ◆JjsLsZzw
垢版 |
02/03/11 19:16ID:6zR1ua/0
>>17
とりあえずそれ組んでみます
ありがとうございます。
02/03/11 21:36ID:???
メッセージID(自分ID)と親IDだけあればいいんでないの?
20困った1(´Д`;) ◆JjsLsZzw
垢版 |
02/03/11 21:56ID:6zR1ua/0
>>19
とりあえずDBでoyaidとtreeid作りました(msgnoは最初からある)
今日は寝るので明日指導してくだちゃい。おやすみなさい、、
2113
垢版 |
02/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>
02/03/12 16:22ID:???
「レスをする」ということで、レスをするツリーIDを渡す
24困った1(´Д`;) ◆JjsLsZzw
垢版 |
02/03/12 16:26ID:BOgC8D8B
>>23
というと?それは具体的に何をするんでしょうか?
あたいの脳がその部分だけかけていて考えられないのです!
サンプル組んでください!
02/03/12 16:43ID:???
人に教えるのって面倒だな・・・
02/03/12 17:01ID:???
サンプル組むってほどのものかよ。。。

セッションでツリーID渡すかINPUTタグのHIDDENで仕込んどけ
2713
垢版 |
02/03/12 19:18ID:???
そろそろ放置かな。
02/03/13 08:16ID:???
だから親のIDを持っとくんだってばさ
mysql_query("insert into tree(datetime, name, msg, refid) values(now(),'$name', '$msg', '$oyaIDne')");

あとは再帰でツリーは描けるから。
レスを投稿する


ニューススポーツなんでも実況