お世話になります。
やりたいこと下記update.php の
1.1箇所目 sql ren1 = ?, ~(略)~ren10 = ?
2.2箇所目 $stmt->bindValue(5, $ren1, PDO::PARAM_STR);
ren1 ~(略)~ren10
ren1 ~(略)~ren10のカラムを一つ一つ記述することなく行いたいです。
実際にはren100とか、もっと増えます。データ型はvarchar(300)です。
forとかで連番の変数を一気に格納したいと思っています。
for ($i = 1; $i <= 10; $i++) {
$array[$i] = ${"v".$i};
}
このような形、又は100個とか記述することなく処理できないでしょうか?
処理の順番
1.edit.php でデータベースから呼び出し編集する。
2.update.php へpost。
3.update.php でconfig_post.phpを読み込む。
php
1//edit.php 2<?php 3require_once ( __DIR__ .'/config_ken/db_kensaconfig.php'); 4try { 5 if (empty($_GET['id'])) throw new Exception('Error'); 6 $id = (int) $_GET['id']; 7 $dbh = new PDO("mysql:host=localhost;dbname=$databasename;charset=utf8", $user, $pass); 8 $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 9 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 10 $sql = "SELECT * FROM $dbtablename WHERE id = ?"; 11 $stmt = $dbh->prepare($sql); 12 $stmt->bindValue(1, $id, PDO::PARAM_INT); 13 $stmt->execute(); 14 $result = $stmt->fetch(PDO::FETCH_ASSOC); 15 $dbh = null; 16} catch (Exception $e) { 17 echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "<br>"; 18 die(); 19} 20 21 22?> 23 24 25<!DOCTYPE html> 26<html lang="ja"> 27<head> 28<meta charset="UTF-8"> 29<title>内容変更フォーム</title> 30</head> 31<body> 32<h2>内容変更</h2> 33 34<form method="post" action="update.php"> 35 36<font size="4"> 37<pre> <a href='list.php'>変更せず一覧に戻る</a></pre> 38<br> 39<input type="hidden" name="id" value="<?php echo htmlspecialchars($result['id'], ENT_QUOTES, 'UTF-8'); ?>"> 40<pre> <input type="submit" value="変更する"></pre> 41</form> 42<table width=100% border=1 cellspacing=1> 43 <tr> 44 <td> 45管轄: 46<select name="kankatsu"> 47<option value="A" <?php if($result['kankatsu'] === A) echo "selected" ?>>A</option> 48<option value="B" <?php if($result['kankatsu'] === B) echo "selected" ?>>B</option> 49<option value="C" <?php if($result['kankatsu'] === C) echo "selected" ?>>C</option> 50<option value="D" <?php if($result['kankatsu'] === D) echo "selected" ?>>D</option> 51</select> 52 </td> 53 <td> 54状況: 55<select name="subject"> 56<option value="指導中" <?php if($result['subject'] === 指導中) echo "selected" ?>>指導中</option> 57<option value="その他" <?php if($result['subject'] === その他) echo "selected" ?>>その他</option> 58<option value="完結" <?php if($result['subject'] === 完結) echo "selected" ?>>完結</option> 59</select> 60 </td> 61 </tr> 62 <tr> 63 <td> 64担当: 65<input type="text" name="tantou" value="<?php echo htmlspecialchars($result['tantou'] , ENT_QUOTES, 'UTF-8'); ?>"> 66 </td> 67 </tr> 68 69 70<!-- 以下が前の質問の箇所です --> 71 72<tr> 73<?php 74 $renban = 1; 75 while ($renban <= 50) { 76 ?> 77 <td><?php echo "連絡".$renban;?><br><br>平成年月日時分 78 </td> 79 <td colspan="2"> 80<textarea name="<?php echo "rensuru"."$renban"; ?>" cols="120" rows="8"> 81<?php echo htmlspecialchars($result["ren"."$renban"], ENT_QUOTES, 'UTF-8'); 82 $renban++; ?> 83 </textarea> 84 </td> 85</tr> 86 <?php } ?> 87 88</table> 89</font> 90</body> 91</html>
php
1//update.php 2<?php 3require_once ( __DIR__ .'/config_ken/db_kensaconfig.php'); 4require_once ( __DIR__ .'/config_ken/config_post.php'); 5 6try { 7 if (empty($_POST['id'])) throw new Exception('Error'); 8 $id = (int) $_POST['id']; 9 $dbh = new PDO("mysql:host=localhost;dbname=$databasename;charset=utf8", $user, $pass); 10 $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 11 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 12 13//1箇所目 14 $sql = "UPDATE $dbtablename 15 SET kankatsu = ?, subject = ?, 16 naiyou = ?, tantou = ?, 17 ren1 = ?, ren2 = ?, ren3 = ?, 18 ~(略)~ 19 ren9 = ?, ren10 = ? 20 WHERE id = ?"; 21 22 $stmt = $dbh->prepare($sql); 23 $stmt->bindValue(1, $kankatsu, PDO::PARAM_STR); 24 $stmt->bindValue(2, $subject, PDO::PARAM_STR); 25 $stmt->bindValue(3, $naiyou, PDO::PARAM_STR); 26 $stmt->bindValue(4, $tantou, PDO::PARAM_STR); 27 28//2箇所目 29 $stmt->bindValue(5, $ren1, PDO::PARAM_STR); 30 ~(略)~ 31 $stmt->bindValue(14, $ren10, PDO::PARAM_STR); 32 $stmt->bindValue(15, $id, PDO::PARAM_STR); 33 $stmt->execute(); 34 $dbh = null; 35 echo "ID: " . htmlspecialchars($id,ENT_QUOTES,'UTF-8') ."更新が完了しました。<br>"; 36echo "<br>"; 37echo "<a href='list_kensa.php'>一覧に戻る</a>"; 38} catch (Exception $e) { 39 echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "<br>"; 40 die(); 41} 42
php
1//require_once ( __DIR__ .'/config_ken/config_post.php');の内容 2 3<?php 4 $kankatsu = $_POST['kankatsu']; 5 $subject = $_POST['subject']; 6 $naiyou = $_POST['naiyou']; 7 $tantou2 = $_POST['tantou']; 8 9 $renban = 1; 10 while ($renban <= 50) { 11 ${"ren".$renban} = $_POST{"rensuru".$renban}; 12 $renban++; 13} 14
回答1件
あなたの回答
tips
プレビュー