前提・実現したいこと
phpでユーザー管理画面のようなものを作っています。
登録画面にて、ユーザーID・パスワード、表示するカラムが選択できるようにして
該当ユーザーにはその選択されたカラムしか表示しないものを作りたいです。
DBのテーブル①には「ID」・「パスワード」・「表示するカラム」、
DBのテーブル②には「ID」・「名前」・「名」「苗字」・・・「電話番号」の情報がそれぞれカラムで入っています。
php
1<!--追加登録画面(tsuika.php)--> 2<!DOCTYPE html> 3<html> 4<head> 5 <title>DB登録</title> 6</head> 7<body> 8 9<h1 align="center">【DB】</h1> 10 11<h2>[追加]</h2> 12<form action="touroku.php" method="POST"> 13 <p> 14 ID: 15 <input type="text" name="id" size="20" > 16 パスワード: 17 <input type="text" name="password" size="20" > 18 19 <p> 20 表示するカラム:<br> 21 <input type="checkbox" name="display[]" value="username">名前 22 <input type="checkbox" name="display[]" value="lastname">名 23 <input type="checkbox" name="display[]" value="firstname">苗字 24 <input type="checkbox" name="display[]" value="lastname_kana">メイ 25 <input type="checkbox" name="display[]" value="firstname_kana">ミョウジ 26 <input type="checkbox" name="display[]" value="address">メールアドレス 27 <input type="checkbox" name="display[]" value="tel">電話番号<br></p> 28 <input type="submit" value="追加"> 29 <input type="reset" value="修正"> 30</form> 31 32 33</body> 34</html>
上記でID・パスワードなどを登録して表示するカラムを選択する
php
1<!--登録画面(touroku.php)--> 2<!DOCTYPE html> 3<html> 4<head> 5 <title></title> 6</head> 7<body> 8 9<h1 align="center">【DB】</h1> 10 11<h2>[登録完了]</h2> 12 13 14<p>追加登録が完了しました</p> 15 16 17<?php 18 19 $id = $_POST['id']; 20 $password = $_POST['password']; 21 $display = $_POST['display']; 22 $display = implode("/", $display); 23 24try{ 25 $pdo = new PDO("mysql:host=localhost; dbname=db; charset=utf8", "root", ""); 26 $stmt = $pdo->prepare("INSERT INTO table(id, password, display) VALUES(:id, :password, :display)"); 27 $stmt ->bindparam(':id',$id,PDO::PARAM_STR); 28 $stmt ->bindparam(':password',$password,PDO::PARAM_STR); 29 $stmt ->bindparam(':display',$display, PDO::PARAM_STR); 30 $stmt->execute(); 31 32}catch (Exception $e){ 33 exit('データベース接続失敗。' . $e ->getMessage()); 34} 35 36 37?> 38</body> 39</html>
上記でDBにID・パスワード、表示するカラムを格納します。
その際、表示するカラムは配列から文字列にして「/」で仕切っています。
試したこと
$display(文字列)の中身をstrposにて確認し、
trueであれば表示、なければ非表示というかたちでif文で分岐させていこうかと思いましたが
今後、$displayの中身を増やしていきたいと考えたときに効率が悪いのではないかと思いました。
phpを勉強はじめたばかりで、というのはいいわけではあるかとは思いますが
効率の良い・また簡潔なやり方をご教示いただきたく質問させていただきます。
いいアイディアをぜひ教えてください。宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/09 05:28
2019/08/09 05:29
2019/08/09 05:30
2019/08/09 05:31
2019/08/09 06:03
2019/08/09 06:33
2019/08/09 06:34