PHPをやっていて、つまづきました。
というのも、if文で、条件がそろっているのに、そこを通らないというものです。
コードです。
コード:
<?php
// 関数一つに一つの機能のみを持たせる
// 1.データベース接続
// 2.データを取得する
// 3.カテゴリー名を表示
// 1.データベース接続
// 引数:なし
// 返り値:接続結果を返す
function dbConnect(){
$dsn = "mysql:host=mysql212.phy.lolipop.lan;dbname=LAA1503693-mydb;charset=utf8";
$user = ''; // LAXXXXXXXX
$pass = ''; // xxxxxxxxxx
try {
$dbh = new PDO($dsn,$user,$pass,[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
} catch( PDOException $e ) {
echo '接続失敗'.$e->getMessage();
exit();
}
return $dbh;
}
// 2.データを取得する
// 引数:なし
// 返り値:取得したデータ
function getAllBlog(){
$dbh = dbConnect();
//1 SQL文の準備
$sql = 'SELECT * FROM blog';
//2 SQLの実行
$stmt = $dbh->query($sql);
//3 SQLの結果を受け取る
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
//var_dump($result);
return $result;
$dbh = null;
}
// 取得したデータを表示
$blogData = getAllBlog();
// 3.カテゴリー名を表示
// 引数:数字
// 返り値:カテゴリーの文字列
function setCategroyName($category){
if ( $category === '1' ) {
return 'ブログ';
} elseif ( $category === '2' ){
return '日常';
} else {
return 'その他';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible"content="ie=edge">
<title>ブログ一覧</title>
</head>
<body>
<h2>ブログ一覧</h2>
<table>
<tr>
<th>No</th>
<th>タイトル</th>
<th>カテゴリ</th>
</tr>
<?php foreach($blogData as $column) : ?>
<tr>
<td><?php echo $column['id'] ?></td>
<td><?php echo $column['title'] ?></td>
<td><?php echo setCategroyName( $column['category'] ) ?></td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
setCategroyName()関数に、引数1を渡しているのですが、
'その他'が返ってきます。
'ブログ'が返ってきてほしいのですが、どこを間違っているのでしょうか?
$column['category'] は 1 になることを確認しています。