ニュースのデータベースを作成
- テーブルを作成。テーブル名=news
- データベースを作成。今回は4カラム
- news_id=連番,int,AUTO_INCREMENT
- news_headline=タイトル,varchar
- news_date=日付,datatime
- news_article=内容,text
- データベースに接続、変数に取得し、phpで表示する
- さらにnews_headline部分をクリックするとgetメソッドを利用し個別記事ページに移動する
<?php
require_once dirname(__FILE__).'/func.php';
$dbh = new PDO('mysql:host=localhost;dbname=データベースの名前;charset=utf8','アカウント','パスワード');
$sql = 'SELECT news_headline, news_date, news_id FROM news;';
$rec = $dbh->query($sql);
?>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/style.css">
<title>最新ニュース</title>
</head>
<body>
<h1>最新ニュース</h1>
<?php
echo "<dl>\n";
foreach($rec as $v){
echo "<dt>";
echo '<a href="news.php?news_id=';
echo $v['news_id'];
echo '">';
echo h($v['news_headline']);
echo "</a>";
echo "</dt>";
echo "<dd>";
echo h($v['news_date']);
echo "</dd>";
}
echo "</dl>";
?>
</body>
</html>
- ニュースの個別ページ(news_articleの内容を表示)
<?php
require_once dirname(__FILE__).'/func.php';
if(!isset($_GET['news_id']) || !is_numeric($_GET['news_id']) || $_GET['news_id'] <= 0){
header('Location: index.php');
exit;
}
$dbh = new PDO('mysql:host=localhost;dbname=news0316;charset=utf8','root','root');
$sql = 'SELECT news_headline, news_date, news_id, news_article FROM news WHERE news_id='.$_GET['news_id'].';';
$rec = $dbh->query($sql);
?>
<html>
<head>
<meta charset="utf-8">
<title>ニュース詳細</title>
</head>
<body>
<h1>ニュース詳細</h1>
<?php
echo "<dl>\n";
foreach($rec as $v){
echo "<dt>";
echo '<a href="news.php?news_id=';
echo $v['news_id'];
echo '">';
echo h($v['news_headline']);
echo "</a>";
echo "</dt>";
echo "<dd>";
echo h($v['news_date']);
echo "</dd>\n";
}
echo "</dl>";
echo "<p>".nl2br(h($v['news_article']))."</p>";
?>
</body>
</html>
今回の要点
データベースに接続
- $dbh = new PDO('データベースに関する情報');
- $rec = $dbh->query('実行するSQL文');
アンカータグ(a)でGET型で値を渡す
- <A HREF="飛びたいURL?項目名=値"> とアンカーに記述
- リンク先(news.php)、$_GET['項目名']に値が格納される
phpで配列/連想配列の利用、foreach文の利用
<?php
$finger = array('親指','人差し指','中指','薬指','小指');
foreach($finger as $v){
echo $v.'<br>';
}
$goranger = array('red'=>'赤レンジャー','blue'=>'青レンジャー','yellow'=>'黄レンジャー','pink'=>'ももレンジャー','green'=>'みどレンジャー');
foreach($goranger as $k=>$v){
echo $k.'<br>';
echo $v.'<br>';
}
$beatles = ['John','Paul','George','Ringo'];
echo $beatles[0];
php-beginner.com