• ベストアンサー

以下をDBから取得するには?

keywordというテーブルがあります。構成は day | keyword _______________ 0723 | goo 0723 | oshiete 0726 | yahoo 0726 | okwave 0726 | okweb な感じです。これをdayが0726のkeywordを全て取得して、各keywordを半角スペースで区切り一列に表示させるにはどうしたらいいのでしょうか? (yahoo okwave okweb な感じ) よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.7

day | keyword | url _______________ 0723 | goo | goo.ne.jp 0723 | oshiete | www.oshiete.net 0726 | yahoo | www.yahoo.co.jp 0726 | okwave | okwave.jp 0726 | okweb | www.okwave.co.jp urlを別にデータとして持つ必要はありそうですが、 以下のようにしてはどうですか? <?PHP $Link=mysql_connect('Host','UserName','Password'); mysql_select_db('DBName',$Link); $sql="SELECT `day`,`keyword`,`url` FROM `keyword` WHERE `day`='0726'"; $Res=mysql_query($sql,$Link); $str=""; while($Rows = mysql_fetch_array($Res,MYSQL_ASSOC)){ $str.=($str==""?"":" ")."<a href=\"{$Rows[url]}\">$Rows[keyword]</a>"; } print $str; ?>

Intel_404
質問者

お礼

回答ありがとうございました。 早速試してみたところokでした。ありがとうございました。

その他の回答 (6)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.6

#5です。1行抜けてました <?PHP header("Content-Type:text/html;charset=euc-jp"); $Link=mysql_connect('Host','UserName','Password'); mysql_select_db('DBName',$Link); $sql="SELECT `day`,`keyword` FROM `keyword` WHERE `day`='0726'"; $Res=mysql_query($sql,$Link); $str=""; while($Rows = mysql_fetch_array($Res,MYSQL_ASSOC)){ $str.=($str==""?"":" ").$Rows['keyword']; } print $str; ?>

Intel_404
質問者

お礼

ご回答ありがとうございました。 大変申し訳ないのですがスペースで区切る際、<a href="./Tag">Tag</a> <a href="./goo">goo</a> のようにリンクも付け加えてやることは可能でしょうか? どうぞよろしくお願いいたします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.5

こんな感じです <?PHP $Link=mysql_connect('Host','UserName','Password'); mysql_select_db('DBName',$Link); $sql="SELECT `day`,`keyword` FROM `keyword` WHERE `day`='0726';"; $str=""; while($Rows = mysql_fetch_array($Res,MYSQL_ASSOC)){ $str.=($str==""?"":" ").$Rows['keyword']; } print $str; ?>

  • funaho
  • ベストアンサー率58% (43/74)
回答No.4

MySQLに付いては詳しく知りませんが、こんな感じで書けばいいと思います。 $sql = "select * from keyword where day = '0726'"; $rs = mysql_query($sql, $com); $row = mysql_num_rows($rs); for ($i=0; $i<$row; $i++ ){ $arr = mysql_fetch_row($rs); echo $arr[1] . " "; }

回答No.3

PHPがわからないので、ざっとですけど sql発行(条件:day=0726) loop  一回目のLOOPだったら   取得値を変数に代入…変数(1)  2回目以降なら   変数(1)." (半角スペース)".変数(1) end loop こんな感じですかね。少しは調べましょう。

参考URL:
http://www.google.com/search?hl=ja&q=PHP+%E6%96%87%E5%AD%97%E5%88%97%E7%B5%90%E5%90%88&btnG=Google+%E6%A4%9C%E7%B4%A2&lr
  • Hardking
  • ベストアンサー率45% (73/160)
回答No.2

対象データをSQL検索する。 SELECT keyword FROM keyword WHERE day = '0726'; 該当データがある場合、1レコード単位にkeywordの値を取得し 一時保存変数にその値と半角スペースを文字連結するような プログラムを作成する。

Intel_404
質問者

補足

回答ありがとうございます。 値と半角スペースを文字連結するようなプログラムを作成する簡単なプログラムなどをお教えいただけたら幸いです。 よろしくお願いいたします。

回答No.1

0726のレコード件数がわかっているなら ひとつのSQLで取得可能ですが、 普通に考えてわかるはずはないですよね。 というわけで、プログラムするしかないです。 loopしながら結合ですね。

Intel_404
質問者

補足

回答ありがとうございます。 ループしながらの結合ということですが、どのように行えばいのでしょうか?簡単なプログラムなどをいただけると幸いです。

関連するQ&A