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

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

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

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

Q&A

解決済

1回答

1390閲覧

PHP 複数の選択した状態を次のページへ データベースに書き込み

mi_

総合スコア80

PHP

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

0グッド

0クリップ

投稿2016/12/25 15:23

お世話になります。

PHPで下記を行おうとしています。

ID、パスワードで、データベースと一致したらログインする仕組みにしています。

menというテーブル(メンバーのテーブル)のmen_name_disp(名前)には店舗や、エリアマネージャーの名前が並んでいます。権限men_grant(人と店舗を分けている情報)や、動作用のキーmen_keyとしたものなどもありそれらで店舗と人の機能を分けたいと思っています。

今回行いたいことは、1番目の画面でエリアマネージャーを選択し、2番目の画面で店舗の一覧から複数をチェックをつけて選択し、担当店舗を割当て、3番目の画面で(場合によってはチェックの画面をへて)、最初に選択した人と選択された店舗のキーだけを格納するテーブルに書き込みたいと思っています。

選択されていたエリアマネージャーの情報(men_no)と、担当店舗の情報sub_key(またはmen_key)をデータベースに書き込みたいと思っています。

個人的に、配列や連想配列にして、それをPOSTデータでやりとりができるのであれば、受け取ったページで、くり返し構文でデータベースに入れていく?と想像していますが、まったく要領をえません。

基本的な考えからずれているかもしれませんが、複数の選択状態を次の画面、テーブルへの書き込みまでもっていくことについてお知恵をお貸しいただければと思います。

よろしくお願いします。

2番目のページのPHPです。

1//1番目のページで選択した情報です。print文などでここまで情報がきていることは確認しました。 2$men_no=$_GET['men_no']; 3 4//途中省略させていただいて、2番目のページの表形式に出すところです。表形式で店舗を表示することまではできたのですが 5$dbh=new PDO($dsn,$dbUser,$dbPass); 6$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 7$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 8 9$sql="SELECT * FROM men WHERE men_grant = :rcstore or men_grant =:fcstore "; 10$stmh=$dbh->prepare($sql); 11$rcstore="rcstore"; 12$fcstore="fcstore"; 13$stmh->bindValue(':rcstore',$rcstore,PDO::PARAM_STR); 14$stmh->bindValue(':fcstore',$fcstore,PDO::PARAM_STR); 15 16$stmh->execute(); 17 18 19 20print'<table border="1" bordercolor="brack">'; 21print'<tr>'; 22print'<td>選択</td>'; 23print'<td>表示名 </td>'; 24print'<td>動作用キー </td>'; 25print'<td>権限 </td>'; 26print'<td>並び順</td>'; 27print'<tr>'; 28 29print'<form method="post" action="men_edit_subkey_check.php">'; 30print'<input type="hidden" name="men_no" value="'.$men_no.'">'; 31print'<input type="hidden" name="men_name_disp" value="'.$reca.'">'; 32while(true) 33{ 34 $rec=$stmh->fetch(PDO::FETCH_ASSOC); 35 if($rec==false) 36 { 37 break; 38 } 39 $men_no_count = $rec['men_no']; 40 41 print'<tr>'; 42 print'<td>'; 43//この次の文でうまく渡せないかと思っていますが、できませんでした。 44 print'<input type="radio" name="?????" value="???">'; 45 print'</td><td>'; 46 print $rec['men_name_disp']; 47 print'</td><td>'; 48 print $rec['men_key']; 49 print'</td><td>'; 50 print $rec['men_grant']; 51 print'</td><td>'; 52 print $rec['men_sort']; 53 print '</td>'; 54 print '</tr>'; 55 var_dump($men_no_count); 56} 57 58print'</table>'; 59 60$dbh=null; 61var_dump($men_no_count); 62} 63catch (PDOException $Exception) 64{ 65 print "ただいま障害により大変ご迷惑をお掛けしております。エラー:".$Exception->getMessage(); 66 exit(); 67} 68

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

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

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

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

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

guest

回答1

0

ベストアンサー

hiddenで値を持ち回ってもいいですが、一番確実なのはセッションです。
「php session」でググってください。

ところで質問内容から察するに、それなりの規模の企業における業務関連システムのようですが、現在のあなたの知識レベルでそれを構築するのはいろいろマズい気がします。セキュリティ等も含めて。

PHPの入門本レベルですらクリアしていないと思われますので、そのプロジェクトを続けるならば複数の書籍を読んで広く浅くでもいいから基礎体力をもっとつけたほうがいいかと思われます。

投稿2016/12/25 15:49

編集2016/12/25 15:53
zico_teratail

総合スコア907

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

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

mi_

2016/12/26 10:57

ご回答ありがとうございました。 おっしゃるとおりで、早足に理解不足なままやっていました。 入門本を4冊くらいしたものの、理解はあまりできておらず作っただけで、ほぼ忘れていました。 見返すことでたくさんのヒントになり、担当者に担当店舗を割り当てたり、削除編集のロック状態をつけたりまでが可能になりました。 セキュリティに関してしっかり勉強したいと思います。 またよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問