薬剤師のプログラミング備忘録

変人薬剤師の独り言

web版αテスト開始です。

ようやくweb版の形が出来てきました。

まだまだ完成には遠いですが、頑張っていきたいです。

今回はjavascriptも兼ねた、データベースから呼び出した文字列の表記についてです。

 

SQLでは立て列をフィールド(列)、横列をレコード(行)と呼びます。

databaseに医薬品名を複数登録する際は、それぞれのカラムに医薬品を登録する方法は、

例)

|医薬品1 |医薬品2 |医薬品3  |

アスベリンムコダインムコソルバン

という方法がありますが、これでは登録医薬品数が膨大になった場合に、フィールドが非常に多くなってしまいます。

新たに入力をする場合にも、修正をする場合にも膨大な量となってしまいます。

ですので、

|医薬品               |

アスベリンムコダインムコソルバン

と、特定の文字で区切ってしまう方法があります。

PHPでは連想配列を結合して、特定の文字を入れ替えることができます。

inputの際に薬を配列[]と設定することによって薬[0]~薬[x]までを配列に保管できます。

連想配列を用いて、

$_SESSION['入力した内容全て']['薬'] = implode(":",$_SESSION['入力した内容全て']['薬'])

としてしまえば、入力した薬は配列で区切られ末尾に":"が付与されます。

結果として

薬1:薬2:薬3:

の状態でdatabaseに保存されます。

入力時には":”を付与し、表示時には":"を検索し、その部分で再度切り取ってしまえばいいわけです。

表示の際はjavascriptのsplitという関数で可能です。

var 薬 = "<php echo htmlspecialchars($呼び出した配列[医薬品]);".split(":");

とすることによって、":"の部分で切り取られて配列に組み込まれます。

document.write(薬[0])

document.write(薬[1])...

とすることによって、医薬品名がそれぞれ切り離された状態で表示されます。

 

今回はそんな難しい話でした。

 

----------

webからの新規登録は募集していませんが、αtester随時募集中です。

連絡はこちらまで /  @

 

f:id:MC753:20170914025520g:plain

f:id:MC753:20170914025526g:plain

f:id:MC753:20170914025538g:plainf:id:MC753:20170914025532g:plain