XAMPPのPHP7とMySQL(mariaDB10.3.15)を使用しています。
データベースに登録してあるデータの中の『お弁当の発注数』を一括更新するためのテーブル&入力フォームを作成しています。
現在、下記コードにて「連続入力できるフォーム」は作ることができたのですが、これを受け取って一括更新するにはどうしたら良いでしょうか。
'vn01str'が一致するレコードごと'vn10str'と'vn11str'を順番に更新していくのか、あるいは、'vn01str'の一致・不一致に関わらず'vn10str'と'vn11str'のみ連続で更新していくことが可能か、教えていただけますでしょうか。
お手数おかけいたしますが、よろしくお願い致します。
php
1<?php 2 3 try { 4 5 6 $pdo = new PDO('mysql:host=localhost;dbname=general_works', 'root', ''); 7 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 8 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 9 10 11 } catch (PDOException $msg) { 12 13 header('content-type: text/plain'); 14 die("データベース接続に失敗しました。: " . $msg->getMessage() . "\n"); 15 16 } 17 18 try{ 19 $sql = "SELECT * FROM vtw100n"; 20 $stmh = $pdo->prepare($sql); 21 $stmh->execute(); 22 23 } catch(PDOException $Exception){ 24 25 die('接続エラー:' .$Exception->getMessage()); 26 27 } 28?> 29 30 31 32 33 34<!DOCTYPE html> 35<html> 36<head> 37<meta charset="UTF-8"> 38<title>お弁当の発注個数登録</title> 39<link rel="stylesheet" href="../css/style.css" /> 40 41<!-- jQuery --> 42<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 43 44<!-- jQuery blockUI.js --> 45<script src="../js/jquery.blockUI.js"></script> 46<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script> 47<script> 48<!-- 49$(function(){ 50 $('#waiting').click(function(){ 51 $.blockUI({ 52 message: '<h1 style="font-size:0.6rem; font-weight:normal;"><img src="../img/ajax-loader_w.gif" /> ただいま登録中です...しばらくお待ち下さい。</h1>', 53 fadeIn: 200, 54 fadeOut: 0, 55 56 overlayCSS: { 57 backgroundColor: '#000', 58 color: '#fff', 59 opacity: '0.6', 60 cursor: 'wait' 61 }, 62 css: { 63 border: 'none', 64 backgroundColor: '#079', 65 color: '#fff', 66 padding: '1rem', 67 margin: '0', 68 height: '2rem', 69 width: '16rem', 70 verticalAlign: 'middle' 71 } 72 }); 73 }); 74}); 75--> 76</script> 77 78</head> 79 80<body bgcolor="#f6fcf9"> 81 82<div class="innerG clearfix"> 83 84<div style="padding:1rem 1rem 3rem 1rem;"> 85 86<form action="./restore.php" method="POST"> 87 88<table class="personTable"> 89 <thead> 90 <tr style="border:1px solid #333;"> 91 <th style="border:1px solid #333;">社員番号</th> 92 <th style="border:1px solid #333;">氏 名</th> 93 <th style="border:1px solid #333;">お 弁 当</th> 94 <th style="border:1px solid #333;">おかずのみ</th> 95 </tr> 96 </thead> 97 <tbody> 98 99<?php 100 101 while($row = $stmh->fetch(PDO::FETCH_ASSOC)){ 102 103?> 104<tr> 105 <td class="tdLine"><?=htmlspecialchars($row['vn01str'])?></td> 106 <td class="tdLine"><?=htmlspecialchars($row['vn02str'])?></td> 107 <td class="tdLine inputText"><input type="text" name="lunch01" VALUE="<?=htmlspecialchars($row['vn10str'])?>" /></td> 108 <td class="tdLine inputText"><input type="text" name="lunch02" VALUE="<?=htmlspecialchars($row['vn11str'])?>" /></td> 109</tr> 110 111<?php 112 } 113 $pdo = null; 114?> 115 116 117 </tbody> 118 </table> 119<input type="submit" value="お弁当の発注情報を登録・更新する" id="waiting"> 120 121</form> 122 123</div> 124 125</div><!--- /innerG ---> 126 127 128</body> 129</html>
追記
このフォームから入力するのは、『月間』の通常弁当とおかずのみの『注文数』を入力し、上記コードのフォームの入力値を、もともとのテーブル'timeworks'に反映させるものが作りたいと思っています。
また、現状のデータベースの状態を、以下の通り、お知らせ致します。
MySQL
1-- -------------------------------------------------------- 2 3-- 4-- テーブルの構造 `timeworks` 5 6CREATE TABLE `timeworks` ( 7 `01str` int(1) DEFAULT 0 COMMENT '固定文字00', 8 `02str` int(6) DEFAULT NULL COMMENT '処理年月', 9 `03str` int(8) ZEROFILL DEFAULT NULL COMMENT '個人コード', 10 `04str` varchar(20) DEFAULT NULL COMMENT '氏名', 11 `05str` varchar(10) DEFAULT NULL COMMENT '集計区分', 12 `06str` float DEFAULT 0 COMMENT '出勤日数', 13 `07str` int(2) DEFAULT 0 COMMENT '休出1日数', 14 `08str` int(2) DEFAULT 0 COMMENT '休出2日数', 15 `09str` time DEFAULT NULL COMMENT '出勤率分子', 16 `10str` time DEFAULT NULL COMMENT '遅早時間', 17 `11str` time DEFAULT NULL COMMENT '私用外出', 18 `12str` float DEFAULT 0 COMMENT '有給消化', 19 `13str` float DEFAULT 0 COMMENT '慶弔日数', 20 `14str` float DEFAULT 0 COMMENT '振休日数', 21 `15str` float DEFAULT 0 COMMENT '産休日数', 22 `16str` float DEFAULT 0 COMMENT '特休日数', 23 `17str` float DEFAULT 0 COMMENT '帰休日数', 24 `18str` float DEFAULT 0 COMMENT '教育日数', 25 `19str` float DEFAULT 0 COMMENT '休職日数', 26 `20str` float DEFAULT 0 COMMENT '弁当個数', 27 `21str` int(1) DEFAULT 0 COMMENT '固定文字01', 28 `22str` time DEFAULT NULL COMMENT '時間外合計', 29 `23str` float DEFAULT 0 COMMENT '欠勤日数', 30 `24str` float DEFAULT 0 COMMENT '欠勤日数', 31 `25str` time DEFAULT NULL COMMENT '遅早外時間', 32 `26str` time DEFAULT NULL COMMENT '通常残業', 33 `27str` time DEFAULT NULL COMMENT '深夜残業', 34 `28str` time DEFAULT NULL COMMENT '深夜所定', 35 `29str` time DEFAULT NULL COMMENT '休1時間', 36 `30str` time DEFAULT NULL COMMENT '休1深夜', 37 `31str` time DEFAULT NULL COMMENT '休2時間', 38 `32str` time DEFAULT NULL COMMENT '休2深夜', 39 `33str` time DEFAULT NULL COMMENT '休出1代出', 40 `34str` time DEFAULT NULL COMMENT '休出1代深', 41 `35str` time DEFAULT NULL COMMENT '休出2代出', 42 `36str` int(2) DEFAULT 0 COMMENT 'おかずのみ注文' 43 44) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;