質問させてください。
現在php htmlでクラッドシステムを作っています。
編集の時の処理を今までキーと値を一つづついれていたのを
今後の拡張性を考えforeachを使い連想配列、追加に対応できるように色々コードを書き換えましたがうまくいきません
少しだけ動いたコードが下のコードですですが一番下の'birthday' => $input_birthdayしか編集できません
私の現在の問題解決力では解決できないと判断して質問しました
回答よろしくお願いします
Crud.phpの下の部分です
public static function update($id, array $data)
{ $mysqli = self::connect(); foreach ($data as $key => $value); { var_dump($key, $value); $sql2 = "UPDATE `crud_test` SET `{$key}` = '{$value}' WHERE `id` = {$id}"; var_dump($sql2); $result = $mysqli->query($sql2); return $result; }
}
edit_post.php
php
1$data = array( 2 'name' => $input_name, 3 'tel' => $input_tel, 4 'email' => $input_email, 5 'birthday' => $input_birthday 6); 7$result = Crud::update($id,$data); 8header('location: ./index.php');
Crud.php
php
1public static function update($id, array $data) 2 3 { 4 $mysqli = self::connect(); 5 foreach ($data as $key => $value); 6 { 7 var_dump($key, $value); 8 $sql2 = "UPDATE `crud_test` SET `{$key}` = '{$value}' WHERE `id` = {$id}"; 9 var_dump($sql2); 10 $result = $mysqli->query($sql2); 11 return $result; 12 } 13}
php
1<?php 2ini_set( 'display_errors', 1 ); 3 4include './Crud.php'; 5?> 6<!doctype html> 7<html lang="ja"> 8<head> 9 <meta charset="UTF-8"> 10 11 12 <title>crud</title> 13</head> 14 15<body> 16<h1>CRUD 練習</h1> 17<a href="add.php">新規登録</a> 18<br> 19 20<?php $id = $_GET['id'] ?? null ?> 21<?php $name = $_GET['name'] ?? null ?> 22<?php $tel = $_GET['tel'] ?? null ?> 23<?php $email = $_GET['email'] ?? null ?> 24<?php $birthday = $_GET['birthday'] ?? null ?> 25 26<form action="" method="get"> 27 <input type="number" name="id" value="<?php echo $id ?>"> 28 <input type="text" name="name" value="<?php echo $name ?>"> 29 <input type="text" name="tel" value="<?php echo $tel ?>"> 30 <input type="text" name="email" value="<?php echo $email ?>"> 31 <input type="text" name="date_of_birth" value="<?php echo $birthday?>"> 32 <input type="submit" name="submit" value="検索"> 33 34</form> 35 36 37<!-- テーブル--> 38<table border="1"> 39 <tr> 40 <th>id</th> 41 <th>name</th> 42 <th>tel</th> 43 <th>email</th> 44 <th>birthday</th> 45 <th>編集</th> 46 <th>削除</th> 47 48 </tr> 49 50 51 <?php $result = Crud::get($id, $name, $tel, $email,$birthday); ?> 52 <?php while ($data = $result->fetch_assoc()): ?> 53 <tr> 54 <td><?php echo $data['id'] ?></td> 55 <td><?php echo $data['name'] ?></td> 56 <td><?php echo $data['tel'] ?></td> 57 <td><?php echo $data['email'] ?></td> 58 <td><?php echo $data['birthday'] ?></td> 59 <td><a href="/edit.php?id=<?php echo $data['id'] ?>">編集</a></td> 60<!-- 削除ボタン押すと削除--> 61 <td><a href="/delete.php?id=<?php echo $data['id'] ?>">削除</a></td> 62 63 </tr> 64 <?php endwhile; ?> 65 66</table> 67</body> 68</html> 69
php
1<?php 2include "./Crud.php"; 3//idなぜここで受け取れる?title.phpから下のコードでアドレスバーに表示させてGET方式で送ってきている 4/*<td><a href="/blog_edit.php?id=<?php echo $data['id'] ?>">編集</a></td>*/ 5$id = $_GET['id']; 6$result = Crud::get($id); 7$data = $result->fetch_assoc(); 8?> 9<html lang="ja"> 10<head> 11 <meta charset="UTF-8"> 12 <title>ブログテスト</title> 13 14 <style> 15 label { 16 display: block; 17 } 18 </style> 19</head> 20<body> 21 22<main> 23 <h1>顧客情報編集</h1> 24 25 <section> 26<!-- id手動でアドレスバーからgetでid送っていいる 遷移--> 27<!-- ここの書き方理解する事!! list.phpの編集ページへのリンクコード--> 28 <form action="/edit_post.php?id=<?php echo $data['id'] ?>" method="post"> 29 <!-- <input type="text" name="id" value="--><?php //echo $data['id'] ?><!--">--> 30 <label>name</label> 31 <input type="text" name="name" value="<?php echo $data['name'] ?>"> 32 <br> 33 <br> 34 <label>tel</label> 35 <input type="text" name="tel" value="<?php echo $data['tel'] ?>"> 36 <br> 37 <br> 38 <label>email</label> 39 <input type="text" name="email" value="<?php echo $data['email'] ?>"> 40 <br> 41 <br> 42 <label>birthday</label> 43 <input type="text" name="birthday" value="<?php echo $data['birthday'] ?>"> 44 <br> 45 <br> 46 <input type="submit" name="submit" value="更新"> 47 </form> 48 </section> 49</main> 50</body> 51</html> 52 53 54 55 56 57 58 59 60
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。