LoginSignup
0
0

More than 3 years have passed since last update.

ボタンクリックにより、同じIDの別のカラムのフィールドを出力する

Posted at

前提: DBが作成されデータが入っている状態

例えば、こんな感じのデータベースを用意して
image.png

キャラ名の隣のボタンをクリックすると
image.png

そのキャラのタイプが表示される。
image.png

(↓動画にするとこんな感じ)
https://gyazo.com/8e68421fe20af2d6b68093ba0108cc9f

みたいな実装をしたい場合は、以下のように書く。

index.php
// DB接続に必要な記述
$con = mysqli_connect('127.0.0.1', 'root', '');
$result = mysqli_select_db($con, 'データベース名');
$result = mysqli_query($con, 'SET NAMES utf8');
$result = mysqli_query($con, 'SELECT * FROM テーブル名');

while ($data = mysqli_fetch_array($result)) {
  print '<form method="post" action="next.php">';
  // next.phpに「id」というnameの「$data['ID']」というvalueが送られる
  print '<input type="hidden" name="id" value="'.$data['ID'].'">';
  // $data['']の中に表示させたいDBのカラム名を記載する
  print '<input type="hidden">' . $data['NAME'] ;
  print '<input type="submit" value="何の呼吸?">';
  print '</form>';
}
next.php
try
{
  // $_POST['']の中には、qiita_index.phpから受け取るname属性の値が入れる
  $kimetsu_id=$_POST['id'];

  // DBへ接続
  $dsn = 'mysql:dbname=yurutto;host=localhost;charset=utf8';
  $user='root';
  $password='';
  $dbh = new PDO($dsn, $user, $password);
  $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

  $sql = 'SELECT TYPE FROM kimetsu WHERE ID = ?';
  $stmt = $dbh->prepare($sql);
  $data[]=$kimetsu_id;
  $stmt->execute($data);

  $rec = $stmt->fetch(PDO::FETCH_ASSOC);
  $kokyu_type=$rec['TYPE'];

  $dbh = null;

  //  同じIDのTYPEカラムのフィールドを出力する
  // (= submitボタンで選択したキャラのタイプが出力する)
  print $kokyu_type;

}
catch (Exception $e)
{
  print 'ただいま障害により大変ご迷惑をお掛けしております。';
  exit();
}
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