人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

(PHP)DBに aaa bbb ccc と単語がスペースで区切られて格納されています。

行いたいことはPHPで全てのレコードから単語の数をかぞえて、例えば同じ単語が20個以上なら赤色で表示し、15個以上なら黄色、5個以下なら表示しないといった感じにするにはどうしたらいいのでしょうか?

簡単なソースお願いいたします。

●質問者: esecua
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:AAA CCC dB PHP ソース
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ygs
●25ポイント

http://www.hatena.ne.jp/

はてな

$sql = ”select field from table”;

$res = mysql_query($sql);


$words = array();

while($row = mysql_query($res)){

foreach(explode(’ ’,$row[field]) as $field){

$words[$field] = 1;

}

}

foreach($words as $field => $dummy){

$sql = ”

select count(*) as cnt from table

where field regexp ’(^| )” . mysql_escape_string(preg_quote($field)) . ”( |$)’”;

$res = mysql_query($sql);

list($row) = mysql_fetch_row($res);

$words[$field] = $row[cnt];

}


foreach($words as $field => $cnt){

if($cnt >= 20){

echo ’<font color=”red”>’.htmlspecialchars($field).’</font>

’;

}else if($cnt >= 15){

echo ’<font color=”yellow”>’.htmlspecialchars($field).’</font>

’;

}else if($cnt > 5){

echo htmlspecialchars($field).’

’;

}

}


mysqlの場合こんな感じです。

◎質問者からの返答

ありがとうございました。実際に試してポイント数を決めていきたいと思います。


2 ● ito-yu
●25ポイント

http://www.mitene.or.jp/~rnk/TIPS_ORCL_FUNC3.htm

Oracle SQL Func3

//とりあえずすべての単語を配列に格納

$sql = ”SELECT DISTINCT hoge FROM table”; //テーブル名table、単語の入っているカラム名hogeとする

$rtn = $db->query($sql); //PEAR DB例

$item_list = array();

while($row = $rtn->fetchRow()){

$list = explode(’ ’, $row[’hoge’]);

foreach($list as $line){

$item_list[$line] = $line;

}

}

//すべての単語についてcount()で個数を数える

foreach($item_list as $item){

$sql = ”SELECT COUNT(*) FROM table WHERE hoge~’{$item}’”;

$cnt = $db->getOne($sql);

if($cnt >= 20){

echo ’<div style=”color:red;”>’.$item.’</div>’;

}elseif($cnt >= 15){

echo ’<div style=”color:yellow;”>’.$item.’</div>’;

}elseif($cnt > 5){

echo ’<div>’.$item.’</div>’;

}else{

//表示しない

}

}


質問するときはサンプルとなるテーブルやカラム名を書いてもらう方がいいんですけどねぇ。今後ご検討ください。その方があなたも勉強になると思います

◎質問者からの返答

回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ