- ベストアンサー
以下をDBから取得するには?
keywordというテーブルがあります。構成は day | keyword _______________ 0723 | goo 0723 | oshiete 0726 | yahoo 0726 | okwave 0726 | okweb な感じです。これをdayが0726のkeywordを全て取得して、各keywordを半角スペースで区切り一列に表示させるにはどうしたらいいのでしょうか? (yahoo okwave okweb な感じ) よろしくお願いいたします。
- みんなの回答 (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; ?>
その他の回答 (6)
- yambejp
- ベストアンサー率51% (3827/7415)
#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; ?>
お礼
ご回答ありがとうございました。 大変申し訳ないのですがスペースで区切る際、<a href="./Tag">Tag</a> <a href="./goo">goo</a> のようにリンクも付け加えてやることは可能でしょうか? どうぞよろしくお願いいたします。
- yambejp
- ベストアンサー率51% (3827/7415)
こんな感じです <?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)
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] . " "; }
- cocomonchi
- ベストアンサー率23% (29/123)
PHPがわからないので、ざっとですけど sql発行(条件:day=0726) loop 一回目のLOOPだったら 取得値を変数に代入…変数(1) 2回目以降なら 変数(1)." (半角スペース)".変数(1) end loop こんな感じですかね。少しは調べましょう。
- Hardking
- ベストアンサー率45% (73/160)
対象データをSQL検索する。 SELECT keyword FROM keyword WHERE day = '0726'; 該当データがある場合、1レコード単位にkeywordの値を取得し 一時保存変数にその値と半角スペースを文字連結するような プログラムを作成する。
補足
回答ありがとうございます。 値と半角スペースを文字連結するようなプログラムを作成する簡単なプログラムなどをお教えいただけたら幸いです。 よろしくお願いいたします。
- cocomonchi
- ベストアンサー率23% (29/123)
0726のレコード件数がわかっているなら ひとつのSQLで取得可能ですが、 普通に考えてわかるはずはないですよね。 というわけで、プログラムするしかないです。 loopしながら結合ですね。
補足
回答ありがとうございます。 ループしながらの結合ということですが、どのように行えばいのでしょうか?簡単なプログラムなどをいただけると幸いです。
お礼
回答ありがとうございました。 早速試してみたところokでした。ありがとうございました。