0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VaccImage SQLを如何にHTML側に反映させるか

Last updated at Posted at 2022-01-27

今回は、部署の入力ページについて。
患者さん、職員、職員家族などの分類のみならず。
外来なのか、入院ならどこの病棟なのか、どこの部署の所属職員なのか。
分類というものが必須です。
そこで、下記を作りました。

CREATE TABLE departments (

dpts_symbol VARCHAR(120) NOT NULL,
dpts_name VARCHAR(120) NOT NULL,
PRIMARY KEY(dpts_symbol)

);

簡単ですね。
部署のシンボルをプライマリーキーにしました。
患者登録のページから、当然ながら患者のみならず職員について、部署を入れないといけませんよね。
部署については、下記SQLにあります。


select * from departments;
+-------------+-----------+
| dpts_symbol | dpts_name |
+-------------+-----------+
| gairai      | 外来      |
| kensa       | 検査科    |
| qq          | 救急      |
| ward3B      | 3B病棟    |
| ward4A      | 4A病棟    |
| ward4B      | 4B病棟    |
| ward5F      | 5F病棟    |
+-------------+-----------+

のような形式です。シンプルですね。
なお部署名は架空のものですよ。
部署入力ページのHTMLを示すと、

<tr>
<td>所属部署</td>
<td><select name="dpts_symbol">
<option value=""></option>

<option value="gairai">外来</option><option value="kensa">検査科</option><option value="qq">救急</option><option value="ward3B">3B病棟</option><option value="ward4A">4A病棟</option><option value="ward4B">4B病棟</option><option value="ward5F">5F病棟</option></select>
</td>
</tr>

のようになっているのですが。**部署を変更するたびに、HTML側をいじるのは面倒ですよね。**これがVer1での課題でした。
これに対してどう対処したか、というのが下記のPHPのCodeです。
まず下記の関数を作りまして、、、

function funcListMake(string $a, string $b, string $c): void
{
    
$db = getDb();
$sql = $a;
$stt = $db->prepare($sql);
$stt->execute();

foreach($stt as $row)
{  

    echo '<option value="', h($row[$b]) , '">';
    echo '', h($row[$c]) , '</option>';
 
}
};

PHPファイルで、実際には以下のように書きます(HTMLを部分的に取り上げています)。

<tr>
<td>所属部署</td>
<td><select name="dpts_symbol">
<option value=""></option>

<?php
funcListMake('SELECT * FROM departments;', 'dpts_symbol', 'dpts_name');
?>

</select>
</td>
</tr>

すると、再掲しますが、

<tr>
<td>所属部署</td>
<td><select name="dpts_symbol">
<option value=""></option>

<option value="gairai">外来</option><option value="kensa">検査科</option><option value="qq">救急</option><option value="ward3B">3B病棟</option><option value="ward4A">4A病棟</option><option value="ward4B">4B病棟</option><option value="ward5F">5F病棟</option></select>
</td>
</tr>

のようになります。
理屈は簡単ですね。
SQLから読み取ってきて、配列を用いて並べているだけです。
皆さんはどのように対処しているのでしょうか?
何冊か書籍も参考にしたのですが、リストがSQLにあっても直接HTMLに記載しているものばかりでしたがどうなのでしょう。
この関数があるだけで、SQL側をいじると自動的にHTML側が変更されるので便利ですよね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?