PHP+MySQLによるサイト制作のやり方【初心者向け】

親和性が高いので、是非、Wordpressを利用しましょう。

データベースを利用することで、必要なデータを簡単に抽出できます。

ここでは、東海地区の市町村群を使うことにします。

phpMyadminの使い方

ここでは、XAMPPを使います。お手持ちのレンタルサーバーでもできます。

phpMyadminで市町村データをアップロードする

適当なデータベース名を定めて、市町村データをアップロードします。

具体的にはデータベース(city_ssample)に、市町村名csvファイルをアップロードします。

次に、テーブルを作ります。

と名前を付けたcsvファイルの構造に合わせたテーブルを用意します。

以下のように、SQL文を入力します。

CREATE TABLE IF NOT EXISTS 'todofuken' (
'code' varchar(8) NOT FULL,
'pref_name'varchar(32) NOT FULL,
'city_name'varchar(64),
'pref_kana'varchar(32) NOT FULL,
'city_kana'varchar(64),
PRIMARY KEY('code'),
)ENGINE=InnoDB DEFAULT CHARSET=utf8 

入力して、実行ボタンを押すと、テーブルができます。

テーブル名をクリックしてインポートを押します。(フォーマットは、csv)

csvファイルがデータベースに格納されました。

PHPでSQLを操作する

PHPを使って、先ほど格納した市町村データを操作していきます。

ここでは、mysqli関数を使います。

3個のphpファイルと1個のhtmlファイルを作ります。

config.php

<?php
$_mysql_host_name='aaaserver.jp';
$_mysql_user='bbb';
$_mysql_pass='ccc';
$_mysql_dbname='ddd';
$_mysql_tablenam='eee';
?>

ユーザー名などは、それぞれご自分でつけた名称に置き換えてください。

pref.php

<?php
include_once('config.php');
$pref_code=htmlspecialchars($_GET['pref_code']);
if(! $link=mysql_connect($_mysql_host_name, $_mysql_user, $_mysql_pass)){die('MySQL接続失敗');}
mysql_select_db($link, $_mysql_dbname);\
$sql='select*from'.$_mysql_tablename.'where code like"'.$pref_code.'%"&&city_name!="";
$result=mysql_query($link, $sql);
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
$html.='<div class="city">';
$html.='<div class="city_kana">'.mb_convert_kana($row['city_kana'],'H','UTF-8').'</div>';
$html.='<div class="city_name"><a href="city.php?code='.$row['code']/'">'.$row['city_name'].'</a></div>';
$html.='</div>';
$pref_name=$row['pref_name'];
}
$html='<div class="city_list">'.$html.'</div>';
mysql_close($link);
?>
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>基本コード</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="main">
<?php echo $html;?>
</div>
</body>
</html>

city.php(各市町村別のページを表示するプログラムファイル)

<?php
include_once('config.php');
$code=htmlspecialchars($_GET['code']);
if(! $link=mysql_connect($_mysql_host_name, $_mysql_user, $_mysql_pass)){die('MYSQL接続失敗');}
mysql_select_db($link, $_mysql_dbname);
$sql='select*from'.$_mysql_tablename.'where code="'.$code.'"';
$result=mysql_query($link, $sql);
$row=mysql_fetch_array($result, MYSQL_ASSOC);
$city_kana=mb_convert_kana($row['city_kana'],'H','UTF-8');
$city_name=$row['city_name'];
$html='<h1>'.$city_name.'('.city_kana.')</h1>';
mysql_close($link);
?>
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title><?php echo $city_name;?>(<?php echo $city_kana;?>)</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="main">
<?php echo $html;?>
</div>
</body>
</html>

index.html(トップページの表示ファイルです)

<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>データベースのテキスト</tilte>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="main">

<span>東海地方</span></br>
<a href="pref.php?pref_code=21">岐阜</a>/
<a href="pref.php?pref_code=22">静岡</a>/
<a href="pref.php?pref_code=23">愛知</a>/
<a href="pref.php?pref_code=24">三重</a>/</br>
</div>
</body>
</html>

これで、完成です。

該当の市町村は表示されましたでしょうか?リンクとその遷移先は正しいですか?

にほんブログ村 IT技術ブログへ
にほんブログ村

コメント

タイトルとURLをコピーしました