uep3vjz9wp score 20
2018/12/06 00:28 投稿
PHPでfunctionを読み込み動作させたい |
お世話になります。 |
#####やりたいこと |
下記のfunction_category.phpをtest.phpで読み込み、動作させたい。 |
カテゴリを数字でmariaDBへ登録し、呼び出し時に数字を日本語に変換して表示させています。 |
カテゴリが現在は4つですが、今後10以上に増えるので書き換えが容易になるよう外部ファイルにしたいです。 |
function_category.php |
```php |
<?php |
function categoryDisplay_function(){ |
if ($row['category'] === '1') $tmp = "いちばん"; |
if ($row['category'] === '2') $tmp = "にばん"; |
if ($row['category'] === '3') $tmp = "さんばん"; |
if ($row['category'] === '4') $tmp = "よんばん"; |
echo "関数テスト表示"; |
} |
``` |
test.php |
```php |
<!DOCTYPE html> |
<html lang="ja"> |
<head> |
<meta charset="UTF-8"> |
<title>試験web</title> |
</head> |
<body> |
<h3>試験web</h3> |
<?php |
require_once 'db_config.php'; |
require_once 'function_category.php'; |
try { |
$dbh = new PDO("mysql:host=localhost;dbname=$databasename;charset=utf8", $user, $pass); |
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); |
$sql = "SELECT * FROM $dbtablename |
WHERE hizuke >= DATE_ADD(NOW(), INTERVAL -3 MONTH) |
ORDER BY hizuke"; |
$stmt = $dbh->query($sql); |
$result = $stmt->fetchAll(PDO::FETCH_ASSOC); |
echo "<table width=100% border=1 cellspacing=1> \n"; |
echo "<tr>\n"; |
echo "<th>日付</th><th>内容</th><th>カテゴリ</th>\n"; |
echo "</tr>\n"; |
foreach ($result as $row) { |
echo "<tr>\n"; |
echo "<td>" . htmlspecialchars($row['hizuke'],ENT_QUOTES,'UTF-8') . "</td>\n"; |
echo "<td width=50%>" . nl2br(htmlspecialchars($row['naiyou'],ENT_QUOTES,'UTF-8')) . "</td>\n"; |
categoryDisplay_function(); |
/* 関数で以下を読み込み |
if ($row['category'] === '1') $tmp = "いちばん"; |
if ($row['category'] === '2') $tmp = "にばん"; |
if ($row['category'] === '3') $tmp = "さんばん"; |
if ($row['category'] === '4') $tmp = "よんばん"; |
*/ |
echo "<td>" . htmlspecialchars($tmp ,ENT_QUOTES,'UTF-8') . "</td>\n"; |
echo "</tr>\n"; |
} |
echo "</table>\n"; |
$dbh = null; |
} catch (PDOException $e) { |
echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "<br>"; |
die(); |
} |
?> |
</body> |
</html> |
``` |
1.function_category.php内の「echo "関数テスト表示";」の「関数テスト表示」は |
表示されるのでファイルは読み込まれています。 |
2.test.php内の「/* 関数で以下を読み込み」の「/*」「*/」を外すとcategoryは日本語で表示され、動作します。 |
3.category以外の動作に支障はありません。 |
4.エラー表示は出ていません。function_category.phpを読み込み、データベースに登録している数字を日本語に変換したいのですが、カテゴリだけが空白となります。function_category.phpの記述方法が悪いのか他に原因があるのかを知りたいと思っています。 |
ご教示お願いします。 |