PHP MYSQLテーブルからキーワードにマッチする行表示

php-MYSQLテーブルからキーワードにマッチする行表示-アイキャッチ PHP

PHPでMYSQLテーブルからキーワードにマッチする行を表示する方法をご紹介します。

検索フォームで指定値を含むデータを抽出し、
そこからデータを1つ選択して表に表示します。

MYSQLにテーブル作成

MYSQLにデータを準備します。


 
 

コード

PHPとHTMLを作成します。

tokuisaki.php


<?php
//データベース接続
$dsn='mysql:dbname=sample;host=localhost;charset=utf8';
$user='root';
$password='';
$dbh=new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

//得意先コード「検索」ボタン押下時
if (isset($_POST["search"])) {

//検索フォームに入力した得意先コードを取得
$search_tcode = $_POST["search_tcode"];
$search_tcode=htmlspecialchars($search_tcode);

//実行
$sql="SELECT * FROM tokuisaki WHERE t_code like '%{$search_tcode}%' ";
$rec = $dbh->prepare($sql);
$rec->execute();
$rec_list = $rec->fetchAll(PDO::FETCH_ASSOC);
}
//データベース切断
$dbh=null;
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>

<!--検索フォーム-->
<form action="tokuisaki.php" method="POST">
<table border="1" style="border-collapse: collapse">
<tr>
<th>得意先コード</th>
<td><input type="text" name="search_tcode"></td></td>
<td><input type="submit" name="search" value="検索"></td>
</tr>
</table>
</form>

<!--得意先コード「検索」ボタン押下時 -->
<?php if (isset($_POST["search"])) { ?>

<table border="1" style="border-collapse: collapse">
<tr>
<th>得意先コード</th>
<th>得意先名称</th>
<th>住所</th>
<th>選択</th>
</tr>

<!--MySQLから該当データを表示-->
<?php foreach ($rec_list as $rec) { ?>
<tr>
<?php echo '<form method="post" action="tokuisaki.php">'; ?>
<td><?php echo $rec['t_code'];?></td>
<td><?php echo $rec['t_name'];?></td>
<td><?php echo $rec['t_address'];?></td>
<td><?php echo '<input type="submit" name="sentaku" value="選択">';?></td>

<!--「選択」した得意先データをhiddenで、★部分に渡す-->
<?php echo '<input type="hidden" name="t_code" value="'.$rec['t_code'].'">'; ?>
<?php echo '<input type="hidden" name="t_name" value="'.$rec['t_name'].'">'; ?>
<?php echo '<input type="hidden" name="t_address" value="'.$rec['t_address'].'">'; ?>
<?php echo '</form>'; ?>
</tr>
<?php } ?>
</table>
<?php } ?>
<br />

<!--「選択」ボタン押下時 -->
<?php if (isset($_POST["sentaku"])) { ?>

<!--★「選択」した得意先データを受け取る-->
<?php
$t_code=$_POST['t_code'];
$t_name=$_POST['t_name'];
$t_address=$_POST['t_address'];
?>

<table border="1" style="border-collapse: collapse">
<tr>
<th>得意先コード</th>
<th>得意先名称</th>
<th>住所</th>
</tr>
<tr>
<td><input type="text" value="<?php print $t_code;?>"><br /></td>
<td><input type="text" value="<?php print $t_name;?>"><br /></td>
<td><input type="text" value="<?php print $t_address;?>"><br /></td>
</tr>
</table>
<?php } ?>

</body>
</html>

 

結果

「得意先コード」に値を入力して「検索」をクリックします。


 

MYSQLの「tokuisaki」テーブルから「210」を含むデータを抽出して表示します。
右側の「選択」ボタンを1つクリックします。


 

選択した得意先のデータを、表に表示します。


 
 
同じ画面にデータを受け渡していく処理を作るのは難しかったですが、
動作するコードを作ることができました。

この記事がお役に立ちますと幸いです。
 

PHPとMYSQLで検索機能を実装する:今すぐできる!
...

 

「1週間でPHPの基礎が学べる本」
1週間でPHPがちょっとだけ使えるようになれる!
わかりやすい!と評判の良い参考書です

広告
PHP
kirinote.com