Suipedia♪~とらおとルカのおしゃべり広場~

ブログ > PHP > > 【php】データベースの取得値をアンカータグ付き...

【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>';
	}

4.おわりに

whileループで紹介していますが、実際の開発時はforeachを使っています。全て取得してから回した方が処理がイメージしやすいので。
このエントリーをはてなブックマークに追加

こんな記事もあります。

コメント (0件)

お名前
メッセージ

コメント欄