前提
HTML、PHP、SQLを使用した在庫管理システムを作っています。
###実現したいこと
チェックを入れた項目をまとめて削除する機能をつけたいです。
発生している問題・エラーメッセージ
delete2.phpの1行目で、「定義されていない変数です」とエラー文が出てしまいます。
(チェックボックスにdeleteという名前を付けましたが、DBにあるデータ配列とどう紐づけて削除すれば良いか、理解度が足りず悩んでおります。)
###補足
①main1のテーブルには、id、name(品名)、ea(個数)、deadline(消費期限)の4つのカラムが入っています。
②delete1.phpでチェックボックスと管理表の表示、delete2.phpで選択された項目をDBから削除する命令を書いています。
該当のソースコード(delete1.php)
$sql = 'select name, ea, deadline from main1'; $stmt = $dbh->query( $sql ); echo "<table border=1>\n"; echo "\t<tr><th>削除有無</th><th>品名</th><th>個数</th><th>消費期限</th></tr>\n"; while( $result = $stmt->fetch( PDO::FETCH_ASSOC ) ){ echo "\t<tr>\n"; echo '<input type="hidden" name="id" value="".$row["id"]."">'; echo "<td><form action=\"delete2.php\" method=get> <input type=\"checkbox\" name=\"delete\" value=\"削除\"></form></td>"; echo "\t\t<td>{$result['name']}</td>\n"; echo "\t\t<td>{$result['ea']}</td>\n"; echo "\t\t<td>{$result['deadline']}</td>\n"; echo "\t</tr>\n";
}
echo "</table>\n";
//SQLを実行
$stmt->execute();
?>
該当のソースコード(delete.2)
$sql="delete from main1 where id= $_GET[$id]";
$stmt = $dbh->prepare($sql);
$params = array();
foreach ($params as $value){
$stmt->execute(array(':id' => $value));
}
?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。