質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

419閲覧

PHPにおいて、DBの検索結果を1レコード選択しページ遷移時に主キーを渡す。

63_Yamamoto

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/10/15 04:44

編集2018/10/15 05:16

前提・実現したいこと

PHPとMySQLを用いて、社員情報検索システムを作成しています。

HTMLのテーブルに検索結果を表示し、1レコードを選択しページ遷移することで、その社員の詳細情報を表示する処理を作りたいです。

発生している問題

ページ遷移時に選択された"emp_no"(主キー)の渡し方が分からないです。

該当のソースコード

PHP

1<table> 2 <tr> 3 <th>ID</th> 4 <th>氏名</th> 5 <th>年齢</th> 6 <th>契約</th> 7 </tr> 8<?php 9$pdo = new PDO ( 'mysql:host=localhost;dbname=db01;charset=utf8', 'user', 'pass' ); 10$sql = $pdo->prepare ( 'select * from emp where name like ?' ); 11$sql->execute(['%'.$_REQUEST['keyword'].'%']) 12; 13foreach ( $sql->fetchAll () as $row ) { 14 echo '<tr>'; 15 echo '<td>', $row ['emp_no'], '</td>'; 16 echo '<td>', $row ['name'], '</td>'; 17 echo '<td>', $row ['age'], '</td>'; 18 echo '<td>', $row ['type'], '</td>'; 19 echo '</tr>'; 20 echo "\n"; 21} 22?> 23</table>

補足情報

PHP歴3時間です。
そもそもできない事だったり、考え方が違ったりしたら、申し訳ありませんがその旨をお伝えください。

PHP 7.2.10
MySQL 5.7
マイナーバージョンについては調査中です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/10/15 04:53

「MySQL」をタグに追加しておいてください。またPHPのバージョンもマイナーバージョン(例:7.2とか)もふまえて本文に追記してください。ソースコードはマークダウンのcode機能を利用してください。
m.ts10806

2018/10/15 04:53

また、3時間程度でデータベースってちょっと早いような。どのような学習方法をとられているのでしょうか。
m.ts10806

2018/10/15 04:55

リクエストを使われていますが、formの送信・リクエスト・レスポンスについての理解はどこまでされていますか?POSTとかGETとかのやつです。
63_Yamamoto

2018/10/15 05:21

C, C++のプログラマです。急ぎの事情でこのシステムを作成しております。サンプルコードを読み解き、動かしながら学習しています。POSTはURLに内容を表示しない、GETは表示する。ということのみ理解できています。
m.ts10806

2018/10/15 05:24

急ぎというのは見ている人には知ったこっちゃない事情なのであまり出さないほうがいい情報かもしれません。POSTとGETの理解はちょっとそれでは微妙ですね。間違ってはないですが。回答欄でつらつらコメントするより優秀な記事はたくさん溢れているのでPHPマニュアルもあわせてそちらを読まれたほうが良いです。
guest

回答3

0

ベストアンサー

例えば、

php

1echo '<td><a href="detail.php?emp_no='. $row ['emp_no']. '">選択</a></td>';

としておいて、
detail.php ※あくまでファイル名は例

php

1$_GET["emp_no"]

teratailも質問詳細URLについている最後の数字は質問IDなので、
理論的には同じです。
質問一覧からはそのIDをもってリンクにしていますね。

投稿2018/10/15 05:23

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

63_Yamamoto

2018/10/15 05:37

ありがとうございます。 解決することができました。
63_Yamamoto

2018/10/15 06:12

大変失礼いたしました。 >echo '<td><a href="detail.php?emp_no='. $row ['emp_no']. '">選択</a></td>'; 遷移元は上記の通りに。 $sql = $pdo->prepare ( 'select * from emp where emp_no = ?' ); $sql->execute([$_GET['emp_no']]) 遷移先ではこのようにSQL文を組み、渡された値からemp_noを取得。SELECT文を実行することで1レコードを取得することに成功しました。 重ねてお礼申し上げます。
m.ts10806

2018/10/15 06:19

そうですね。別途コメントで書いたようにリクエストとレスポンスの仕組みはどの言語にもあるはずなので、そこはPHPマニュアルを確認しながら理解を深めていってください。
guest

0

「選択」といってもいくつか方法があるので、「選択」する部分のコードまでをとりあえず書いてみては?

投稿2018/10/15 04:54

ssasaki

総合スコア1167

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

63_Yamamoto

2018/10/15 04:59

申し訳ありません。選択する手法が分かっていません。
guest

0

例示のソース内に遷移する要素が一切ないので回答しようがありませんね。
もしアンカーでやるならid=xxx的なGETパラメータをつけて渡せばよいでしょう

投稿2018/10/15 04:53

yambejp

総合スコア114777

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問