【php】データベースの取得値をアンカータグ付き文字列で出力する方法
1.前提条件
データベースから取得した値をアンカータグ付きのリンク文字列で出すということは最低限、・そのアンカータグを付与する文字列
・アンカータグのhrefに指定するURL
の2つが必要。
これは事前に用意しておく。
サイト全体のコンテンツを管理するテーブルや記事ごとに関連記事を管理するテーブルがこれにあたる。
2.データベースからコンテンツ一覧を取得する方法
DBの取得値を出力する前の段階について、ソースを以下に示す。『$dbh』というDBconnect変数については既に用意されている体で話を進める。
これを用意する方法についてはこちらを参照。
$sql = "SELECT * FROM hogetable"; $stmt = $dbh->prepare($sql); $stmt->execute();
3.リンク文字列の出力
先ほどの続きで取得したデータ一覧を一つずつ順に出力するコード。htmlソースにphpの文字列を混ぜ込む場合、
・htmlソースは『'』で囲む。(もしくは『"』)
・変数と文字列の連結は『.』を使用する
がポイント。
'htmlソース'.phpソース.'htmlソース'; ・・・という具合である。
なお、以下でしているループは検索結果がなくなるまで回す、というもので毎回『if($result==false)』で検索結果の有無を検査している。
『break;』はループを抜けるの意。
『$result』自体がtrueかfalseの結果を持っているはずなので、通常ifの中でtrueやfalseとわざわざ比較するということはしない。・・・でも何故か↓のソースはしてるね、アチャパー(;゚Д゚)
$sql = "SELECT * FROM hogetable"; $stmt = $dbh->prepare($sql); $stmt->execute(); while(1){ $result = $stmt->fetch(PDO::FETCH_ASSOC); if($result==false){ break; } print '<a href='.$result[url].'>'.$result[title].'</a>'; }