削除、更新処理ともに1回にまとめたくて下記コードを書いてみたんですが、delete文に「Notice: Array to string conversion 」と表示され、恐らく($id)の箇所を指してるんだと思いますが、シングルクォーテーションを付けても全く改善しませんでした
私が今やりたいことは、各投稿のIDをvalueに設定し、そのIDをupdate・delete文で指定してnameとcommentを更新・削除するということです
チェックボックスにはname属性にchkid[]を指定しているのでchkid自体に何かしらの処理を行うべきではと思い、($id)の箇所を$_POST['chkid']としてみたんですがエラーが出てそこから先が全く分からなくなってしまいました
PHP
1 $link = mysqli_connect($host, $user, $pass, $dbname) or die("NG"); 2 3 mysqli_select_db($link, "XXX"); 4 5 if (isset($_POST['name'], $_POST['comment'], $_POST['bbs']) && $_POST['bbs'] == "post") { 6 $name = $_POST['name']; 7 $comment = $_POST['comment']; 8 mysqli_query($link, "INSERT INTO XXX (name, comment) VALUES ('$name', '$comment')"); 9 } elseif (isset($_POST['bbs']) && $_POST['bbs'] == "update") { 10 $name = $_POST['name']; 11 $comment = $_POST['comment']; 12 $id = $_POST['chkid']; 13 mysqli_query($link, "UPDATE XXX SET 'name = '$name', comment = '$comment' WHERE id in($id);"); 14 } elseif (isset($_POST['bbs']) && $_POST['bbs'] == "delete") { 15 $id = $_POST['chkid']; 16 mysqli_query($link, "DELETE FROM XXX WHERE id in($id);"); 17 } 18 19 $result = mysqli_query($link, "SELECT * FROM XXX ORDER BY time DESC"); 20?> 21 22<html> 23 <head> 24 <meta http-equiv="content-type" content="text/html; charset=utf-8"> 25 </head> 26 <body> 27 <form method="post" action=""> 28 <table> 29 <tr> 30 <td> 31 名前:<input type="text" name="name"> 32 内容:<textarea name="comment" cols="30" rows="3"></textarea> 33 <input type="radio" name="bbs" value="post" checked>投稿 34 <input type="radio" name="bbs" value="update">更新 35 <input type="radio" name="bbs" value="delete">削除 36 <input type="submit" value="投稿"> 37 </td> 38 </tr> 39 </table> 40 41<?php 42 while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 43?> 44 45 <table> 46 <input type="checkbox" name="chkid[]" value="<?=$row['id'] ?>"> 47 <tr> 48 <td>名前: 49 <?php echo $row['name'] ?> 50 </td> 51 </tr> 52 <tr> 53 <td>内容: 54 <?php echo $row['comment'] ?> 55 </td> 56 </tr> 57 </table> 58 59<?php 60 } 61 mysqli_free_result($result); 62 63 mysqli_close($link); 64?> 65 66 </form> 67 </body> 68</html>
回答3件
あなたの回答
tips
プレビュー