• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:任意のレコード値を別レコードに挿入)

任意のレコード値を別レコードに挿入

このQ&Aのポイント
  • 顧客テーブルから絞り込まれたレコードを売上テーブルに挿入する方法について教えてください。
  • 現在、検索結果をループで表示しており、ボタンをクリックするとすべての検索結果が挿入されます。
  • どのようにすれば絞り込まれたレコードのみを挿入できるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

検索結果を表示するときに <form action="reg.php" method="post"> <input type="hidden" name="kokyaku_id" value="<?=$row['kokyaku_id'] ?>"> <input type="submit" value="売上登録"> </form> っていう形で1レコード毎に作ればいいんじゃない? そうすれば出力されるHTMLは <form action="reg.php" method="post"> <input type="hidden" name="kokyaku_id" value="1"> <input type="submit" value="売上登録"> </form> <form action="reg.php" method="post"> <input type="hidden" name="kokyaku_id" value="2"> <input type="submit" value="売上登録"> </form> とかなるでしょ。そうすればそれぞれのボタンをクリックすればkokyaku_idはそれぞれの値が飛ぶ。 reg.phpではそのkokyaku_idを取得してその値でselect insertすればいいんじゃない?

wapparice2
質問者

お礼

ありがとうございます。 教えて頂いた内容でうまくいきました。 お手数おかけしました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

ごめん、ここの仕様の問題だから仕方ないんだけど、画像の中に小さい字があっても読めないんだ。 INSERTを実行するところが問題だろうにそこのロジックを端折っちゃアドバイスのしようがないよ。 普通はキーとなる項目を登録用のスクリプトに送信してそのキーで顧客テーブルから対象のレコードを取得して売り上げテーブルにインサートかけると思うけど。 再取得しないなら全項目をhiddenに持つとかしないとだよ。 まあカンマ区切りで持ったりしてもいいけど。 そんなことするなら、INSERT時にもう一度取得したほうがいいと思うよ。 面倒ってのもあるし、画面開いたまま他の人が顧客テーブル書き換えたら古いデータで上書きされることになるし。 そうなってくるとデータのロックしたりとか考えないといけない。 (どっちにしてもWebだとデータのロックを考慮しないといけない場合が多い。絶対一人しか実行しません。ってなら別だけど)

wapparice2
質問者

補足

ご回答ありがとうございます。 おっしゃる通りにhiddenで全項目を隠して行う予定でしたが、面倒ですね。 スクリプトファイルにkokyaku_idを飛ばしたいと思っていますが、$kekka['kokyaku_id']だと全ての値がPOSTされてしまうので、どうすればいいのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • phpでDBを検索したい

    最近PHP+mysqlの勉強を始めて、入門書片手に試行錯誤している状況です。 phpで検索ボックスを作って、データベースから名前を引っ張ってきたいのですが、うまくいきません… 因みに同じページに表示したいと思っています。 あと、多分使っている関数が古いとは思いますが、PDOやmysqliとかにすると今より更に知識不足でエラーになってしまうので、とりあえず古いままで使っていますが気にしないでください… データベース名:mydb テーブル名:table id | name | ---+------------+-- 1 | 名前太郎 | 2 | 氏名太郎 | 3 | 名字一郎 | 4 | 名前五郎 | 5 | 氏名花子 | こういうテーブルがあったとして、 名前 というキーワードで検索したときに、セレクトボックスに 名前太郎と名前五郎の2つが表示できたらと思っています。 根本的に間違っているのかもしれませんが、どのように変えればいいのかご教示いただけると幸いです。 何卒よろしくお願い致します。 <?php ちょっとした別の処理~省略 print <<<_FORM_ <label for="name_search">名前検索</label> <form action="" method="post"> <input name="u_name" type="text" id="u_namae" value="" /> <input type="submit"> </form> _FORM_; if (isset($_POST['u_name'])){ $kensaku = htmlspecialchars($_POST['u_name']); $kensaku = "'%". $kensaku ."%'"; require_once('dbconnect.php'); $sql = sprintf("SELECT * FROM table WHERE name LIKE $kensaku "); $recordSet = mysql_query($sql); print <<<_FORM_ <select name="u_name"> _FORM_; while ($kekka = mysql_fetch_assoc($recordSet)) { $val=htmlspecialchars($kekka['name']); ?> <option value="<?php print(htmlspecialchars($kekka['id'])); ?>"> <?php print(htmlspecialchars($kekka['name'])); ?> </option> <?php } print <<<_FORM_ </select> _FORM_; } ?>

    • 締切済み
    • PHP
  • PHPでMySQLのレコードを削除したい

    現在「基礎からのMYSQL」という本でXAMPPを導入しMySQL,PHPの基礎を勉強中です。 (mysql_query() を初めて学習中です。) 例にならってスクリプトを書いてみたのですが、MySQL内にあるレコードを削除するためのスクリプトがうまく作動しません。 (SELECT, INSERT, SEARCH は正常に作動します。DELETEだけがなぜかうまくいきません。) ApacheとMySQLは起動しています。 考えられる原因をおしえていただけませんでしょうか。よろしくおねがいいたします。 ソースコードは下記のとおりです。 ★HTML(トップページ) //メッセージ表示のスクリプトを呼び出すフォーム <form method="post" action="kantan_select.php"> メッセージを表示します<br> <input type="submit" value="メッセージ表示"> </form> //挿入のスクリプトを呼び出すフォーム <form method="post" action="kantan_insert.php"> 名前を入力してください<input type="text" name="a1"><br> メッセージを入力してください<input type="text" name="a2" size=150><br> <input type="submit" value="送信"> </form> //☆☆☆削除のスクリプトを呼び出すフォーム☆☆☆ <form mothod="post" action="kantan_delete.php"> 削除番号<input type="text" name="b1"><br> <input type="submit" value="削除番号送信"> </form> //検索のスクリプトを呼び出すフォーム <form method="post" action="kantan_search.php"> 検索キーワード<input type="text" name="c1"><br> <input type="submit" value="検索開始"> </form> ★レコード削除のPHPスクリプト <?php $s=mysql_connect("localhost","root","パスワード") or die("接続失敗"); print "接続しました<br>"; mysql_select_db("db1"); $b1_d=$_POST["b1"]; mysql_query("delete from tbk where bang=$b1_d") ; $re=mysql_query("select * from tbk order by bang"); while($kekka=mysql_fetch_array($re)){ print $kekka[0]; print ":"; print $kekka[1]; print ":"; print $kekka[2]; print "<br>"; } mysql_close($s); print "<br><a href='kantan.html'>メニューに戻る</a>" ?> <環境> Windows 7 XAMPP導入するための付属CD-ROMの内容  ・Apache(HTTPD2.2.6 + Openssl0.9.8e)   ・MySQL(5.0.45)  ・PHP(5.2.4)  ・PHP(4.4.7)  ・phpMyAdmin(2.11.1)  ・Zend Optimizer

    • 締切済み
    • PHP
  • 自動的にchekboxを

    mysqlからデータを表示して自動的にチェックボックスを 生成し、チェックしてsubmitしたらそれを表示したいのですが、checkboxのvalue値を自動生成できず悩んでいます。ご伝授お願いしたいます。 while ($row = mysql_fetch_assoc($result)) { print($row['name_no']); print($row['name']); print($row['price']); print('<input type="checkbox" name="no[]" value= row['name_no'])'); } print(' <input type="submit"></form>'); $idno=join($_POST["no"]); print($idno);

    • 締切済み
    • PHP
  • 特定のレコードだけを表示させるためのコード

    ●質問の主旨 kensaku.htmlから数字(データベースのコード番号)を入力・検索して、 PHPMyAdminにあるデータベースから、特定のレコードを取り出したいのですが、 データベースにあるすべてのデータが返されます。 検索窓に入力した特定のレコードの内容だけを 返すためには、下記のichiran.phpをどのように直せばよいでしょうか? ●プログラムの流れ 1.kensaku.htmlの検索窓に番号を入力・送信 2.PHPMyAdminにあるデータベース(aketo)にアクセス 3.ichiran.phpで検索結果を表示 ●プログラムコード (kensaku.html) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <form method="post" action="kensaku.php"> ご意見コードを入力してください。<br/> <input name="code" type="text" style="width:100px"><br/> <br/> <input type="submit" value="送信"><br/> </body> </html> (ichiran.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $code=$_POST['code']; $dsn = 'mysql:dbname=phpkiso2;host=localhost'; $user = 'root'; $password = ''; $dbh = new PDO($dsn,$user,$password); $dbh->query('SET NAMES UTF-8'); $sql = 'SELECT * FROM anketo WHERE code='.$code; $stmt = $dbh->prepare($sql); $stmt->execute(); $stmt->execute(); while(1) { $rec = $stmt->fetch(PDO::FETCH_ASSOC); if($rec == false) { break; } print$rec['code']; print$rec['nickname']; print$rec['email']; print$rec['goiken']; print'<br/>'; } $dbh = null; ?> </body> </html> ●開発環境 windows8 xammp1.8.1 MySQL(PHPMyAdmin)

    • ベストアンサー
    • MySQL
  • 複数のフォームから送信

    複数のフォームからtextの値を送信したいのですができますか?〒番号を入力して検索ボタンをおすと住所がでてきて最後に登録をしたいです。検索だけのプログラムはできてますがフォームを二つにすると両方のsubmitが登録になります・・・ 一応自分でいろいろためしましたがだめでした。。。 html,php,javascriptです。 二つともだめでした。。。。 rei1.php ------------------------- <html> <body <form method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> <br> <form method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> -------------------------------------- rei2.php -------------------------------------- <html> <head> <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } //--></script> </head> <body> <form name="nform" method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> </form> <form name="nform2" method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> <form name="nform3" method="POST" action="1.php"> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> ------------------------------------

  • フォーム送信後の更新ボタンでも$_POST変数が初期化されない

    フォームのサブミット後にプログラムが走るようになっているtest.phpがあるのですが、フォーム送信後に更新ボタンを押しても再度ポストされるようになってしまっています。 ブラウザの更新ボタンを押したときには、ポストせずにフォームをクリアしたいのですが、どうすればできますでしょうか? <form method="post" action="<?php print($_SERVER['PHP_SELF']); ?>"> <input type=text name=aaa> <input type="submit" name="submit" value="submit"> </form> <?php if($_POST['submit']) { 処理 } ?>

    • ベストアンサー
    • PHP
  • ボタン別でフォームの送信先を変えたい

    同じ場所に3つある今のフォームを1つにまとめたいのですが、 「ラジオボタン」でやるのではなく「submitボタン」によって送信先の振り分けはできないのでしょうか? CGIなどを使って一旦クッションを置くのは問題ないです。何か参考になるサイトさんとかありましたら教えてください。 <form action="1.php" method="get" class="form" target="a" name="1"> <input type="hidden" name="s" value=90 /> <input type="hidden" name="t" value="e" /> <input type="text" name="moji" value="" size="8" /> <input type="submit" name="button" value="検索" /> </form> <form action="http://e.php" method="get" name="2" target="a"> <input type="hidden" name="test" value=et /> <input type="text" name="77" value="" size="8" /> <input type="submit" value="検索2" class="button" /> </form> <form action="http://8.cgi" method="get" target="a"> <input type="text" size="8" name="q" value="" /> <input type="submit" value="検索3" class="button" /> <input type="hidden" name="sut" value="JJ" /> </form>

    • ベストアンサー
    • CGI
  • 一つのformで、複数のaction指定

    レイアウトなどの関係で、formの配置が基本とは異なるものになってしまい、うまく動作させる方法が見つからず困っています。 現在は <form> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> </form> …… <form method="POST" action="A.php"> <input type="submit" name="aa" value="あああ"> </form> <form method="POST" action="B.php"> <input type="submit" name="bb" value="いいい"> </form> <form method="POST" action="C.php"> <input type="submit" name="cc" value="ううう"> </form> <form method="POST" action="D.php"> <input type="submit" name="dd" value="えええ"> </form> のようになっていて、チェックボックスの値を送信したいのは、Dのボタンを押したときだけPOSTされるようにしたい状態です。 この値を取得する方法か、もしくは <form method="POST" action="(ボタンに応じたもの)"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> …… <input type="submit" name="aa" value="あああ"> <input type="submit" name="bb" value="いいい"> <input type="submit" name="cc" value="ううう"> <input type="submit" name="dd" value="えええ"> </form> このように、一つのフォームの中に埋めてしまい、actionに入る値をボタンによって分ける方法はありませんでしょうか? もしくは他の方法でも構いません。 お分かりの方がいましたら、是非ご教授お願いいたします。

    • 締切済み
    • PHP
  • Like演算子について

    OS→Windows XP Home Edition Apache→2.0.59 PHP→4.4.4 今、Like演算子で検索しようとしていますが 上手く行きません。 <?php //データベースに接続する $conn = pg_pconnect("user=postgres password=grjtf dbname=mytbl"); //名前を検索する if(isset($_POST["action"]) && $_POST["sign"] == '検索') { //NAMEが書かれていた場合 if($_POST["name"]) { //NAMEを検索する //$sql4="SELECT * FROM mytbl WHERE name LIKE ('{$_POST['name']}')%"; //データベースに問い合わせて、クエリを実行する //pg_query($conn,$sql4); //成功メッセージ print "$_POST["name"]は検索されました。<br><br>"; } else { //失敗メッセージ print "$_POST["name"]は検索出来ませんでした。<br><br>"; } } ?> <!--$_SERVER['PHP_SELF']; ?>は、自分自身を呼び出す--> <FORM ACTION=<?php echo $_SERVER['PHP_SELF']; ?> METHOD=POST> <!--IDとNAMEとSCORE入力欄--> <input type=hidden name=action value=post> <!--入力ボックス--> ID: <input type=text name=id size=5> Name: <input type=text name=name size=15> SCORE: <input type=text name=score size=15> <br> <br> <!--ボタンオブジェクト--> <input type=submit name=sign value="書き込み"> <input type=submit name=sign value="点数修正"> <input type=submit name=sign value="一行削除"> <input type=submit name=sign value="検索"> </FORM> どなたか分かる方いればご教授お願いします。

    • 締切済み
    • PHP
  • postのタイムラグ

    以下のソースでPOSTの値が取れないときがあるので困っています。 具体的にはページを表示してから30秒程度待ってからの クリックじゃないとPOSTの値が取れません。 GETの場合はページ表示後すぐにボタンをクリックしても大丈夫でした。 原因が分からず途方に暮れています。 お知恵をお貸しください。 PHP Version 5.2.3 <?php $P_data = $_POST["pg"]; print("POST=>".$P_data."<BR>"); $G_data = $_GET["pg"]; print("GET=>".$G_data."<BR>"); print <<< DOC_END <html> <head> </head> <body> DOC_END; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=1>"; echo"<input type=submit value=あ>"; echo"</form>"; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=2>"; echo"<input type=submit value=い>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=3>"; echo"<input type=submit value=う>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=4>"; echo"<input type=submit value=え>"; echo"</form>"; print <<< END </body> </html> END; ?>

    • 締切済み
    • PHP