ファイルアップロードした画像をニュース(お知らせ)一覧に追加して表示します。
機能概要
プログラミングコード
「newslist_v2.php」画像付きお知らせ一覧ページファイル
- 4行目:「config.php」を読み込み、その中の変数情報を使用することができるようになります。
- 10~21行目:「SQL文」を作成します。
- 43行目:「foreach( )」は、62行目の「endforeach」までを繰り返します。今回の条件では、「&data」内のレコードが無くなるまで繰り返します。
- 55行目:「$imgFilePath」にデータベース内のフォルダ名とファイル名を使用して、パスを作成します。
- 56行目:取得したレコード内のカラム「$row[‘file_name’]」に値が入っている、かつ、55行目で取得したフォルダ内にファイルが存在するかをチェック(file_exists)し、上記の条件を満たす場合、57行目の画像を表示処理を行う。
<?php
//データベース接続情報を格納
include("config.php");
try{
$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "select"
." nt.seq_no"
.",nt.title_kj"
.",nt.insert_at"
.",nft.folder_name"
.",nft.file_name"
." from news_tbl nt"
." left join news_fileuploads_tbl nft"
." on nt.seq_no = nft.news_no"
." and nft.delete_ku = '0'"
." where nt.delete_ku = '0'"
." order by nt.seq_no desc;";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$count = $stmt->rowCount();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$data[] = $row;
}
}catch (PDOException $e){
echo($e->getMessage());
die();
}
?>
<html>
<body>
<h1>ニュース一覧</h1>
<a href="newsAdd_v2.php">新規登録</a><br><br>
<table border=1>
<tr><th>id</th><th>日付</th><th>タイトル</th><th>画像</th></tr>
<?php foreach($data as $row): ?>
<tr>
<td><?php echo $row['seq_no'];?></td>
<td>
<?php
$Date = date($row['insert_at']);
echo date('Y.m.d', strtotime($Date));
?>
</td>
<td><a href="newsArticle.php?seq_no=<?php echo $row['seq_no'];?>"><?php echo $row['title_kj'];?></a></td>
<td>
<?php
$imgFilePath = "uploads/".$row['folder_name']."/".$row['file_name'];
if(isset($row['file_name']) && file_exists($imgFilePath)){
echo "<img src='".$imgFilePath."'>";
}
?>
</td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
演習問題
- 上記のコードを使用して、ファイル作成し、動作するようにしてみよう。
- データベースやテーブルを変更し、違う情報を利用して、動作するようにしてみよう。