質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

674閲覧

データベースから取得した数字を文字列に置き換えて表示させたい。

crsphpzhv

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/07/09 06:28

###やりたいこと
データベースから取得した数字を文字列に置き換えて表示させたい。

1.コード1だと例えば数字の2が表示されるが、コード2のように東北支店と表示せたい。

2.コード2は下記のエラー表示。
Notice: Undefined variable: tmp in /var/www/html/yobou/kensa/shousai.php on line 50

コード2でエラーなく表示せたい。ご教示お願いします。

ソースコード全文

php

1<?php 2// エラーを出力する 3ini_set('display_errors', "On"); 4 5require_once ( __DIR__ .'/config_ken/db_kensaconfig.php'); 6try { 7 if (empty($_GET['id'])) throw new Exception('Error'); 8 $id = (int) $_GET['id']; 9 $dbh = new PDO("mysql:host=localhost;dbname=$databasename;charset=utf8", $user, $pass); 10 $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 11 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 12 $sql = "SELECT * FROM $dbtablename AS t1 13 JOIN table_shokuin AS t2 14 ON t1.shokuinbangou1 = t2.bangou 15 WHERE id_kensa = ?"; 16 17 18 $stmt = $dbh->prepare($sql); 19 $stmt->bindValue(1, $id, PDO::PARAM_INT); 20 $stmt->execute(); 21 $result = $stmt->fetch(PDO::FETCH_ASSOC); 22 $dbh = null; 23} catch (Exception $e) { 24 echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "<br>"; 25 die(); 26} 27?> 28 29 30<!DOCTYPE html> 31<html lang="ja"> 32<head> 33<meta charset="UTF-8"> 34</head> 35<body> 36 37<?php 38/***コード1ここから 39  例えば数字の2がデータベースにあれば2と表示される。 40***/ 41 echo htmlspecialchars($result['kankatsu'],ENT_QUOTES,'UTF-8'); 42/***コード1ここまで***/ 43 44/***コード2ここから***/ 45function kankatsuDisplay_2_function($result){ 46 if ($result['kankatsu'] === '1') $tmp = "本店"; 47 if ($result['kankatsu'] === '2') $tmp = "東北支店"; 48 if ($result['kankatsu'] === '3') $tmp = "関西支店"; 49 if ($result['kankatsu'] === '4') $tmp = "九州支店"; 50return $tmp; 51} 52 $tmp = kankatsuDisplay_2_function($result); 53 54 echo htmlspecialchars($tmp,ENT_QUOTES,'UTF-8'); 55/***コード2ここまで***/ 56 57 58?> 59 60</body> 61</html> 62

ソースコード該当箇所を抜き出したもの。

php

1/***コード1ここから 2  例えば数字の2がデータベースにあれば2と表示される。 3***/ 4 echo htmlspecialchars($result['kankatsu'],ENT_QUOTES,'UTF-8'); 5/***コード1ここまで***/ 6 7/***コード2ここから***/ 8function kankatsuDisplay_2_function($result){ 9 if ($result['kankatsu'] === '1') $tmp = "本店"; 10 if ($result['kankatsu'] === '2') $tmp = "東北支店"; 11 if ($result['kankatsu'] === '3') $tmp = "関西支店"; 12 if ($result['kankatsu'] === '4') $tmp = "九州支店"; 13return $tmp; 14} 15 $tmp = kankatsuDisplay_2_function($result); 16 17 echo htmlspecialchars($tmp,ENT_QUOTES,'UTF-8'); 18/***コード2ここまで***/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mdj

2020/07/09 07:04

コード1でhtmlspecialchars()なのに、コード2ではそのまま渡しているのもよくわからないところですが、「===」ではなく「==」ではダメなんでしょうか
crsphpzhv

2020/07/09 07:21

・「===」を「==」としたら問題なく表示されました。ありがとうございました。 ・「コード2ではそのまま渡しているのもよくわからない」   →質問用に作成したため変なことになっており、誤解を招いてすみません。
guest

回答1

0

自己解決

・「===」を「==」とし問題なく表示。

投稿2020/07/09 09:55

crsphpzhv

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問