■やりたいこと
一度データベースに格納した情報を書き換えたい
■問題点
書き換えられるようにコードを書いたのだが何故かデータベースの情報が変わらない。
php
1//pro_edit.php 2<!DOCTYPE html> 3<html lang="ja"> 4 5<head> 6 <meta charset="UTF-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <title>Document</title> 9</head> 10 11<body> 12 <?php 13 try { 14 $pro_code = $_GET['procode']; 15 $db = new PDO('mysql:host=localhost;dbname=shop', 'aaa', '1111'); 16 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 17 18 $sql = 'SELECT name,price,gazou FROM mst_product WHERE code=?'; 19 $stmt = $db->prepare($sql); 20 $stmt->execute(array($pro_code)); 21 $rec = $stmt->fetch(PDO::FETCH_ASSOC); 22 $pro_name = $rec['name']; 23 $pro_price = $rec['price']; 24 $pro_gazou_name_old = $rec['gazou']; 25 $db = null; 26 $stmt = null; 27 if($pro_gazou_name_old ==''){ 28 $disp_gazou =''; 29 }else{ 30 $disp_gazou = '<img src="./gazou/'.$pro_gazou_name_old.'">'; 31 } 32 } catch (PDOException $e) { 33 echo $e->getMessage(); 34 exit; 35 } 36 37 ?> 38 <p>商品修正</p> 39 <p>商品コード</p> 40 <p><?php echo $pro_code; ?></p> 41 <form method="post" action="pro_edit_check.php" enctype="multipart/form-data"> 42 <input type="hidden" name="code" value="<?php echo $pro_code;?>"><br> 43 <input type="hidden" name="gazou_name_old" value="<?php echo $pro_gazou_name_old;?>"><br> 44 45 <p>商品名</p> 46 <input type="text" name="name" style="width:200px" value="<?php echo $pro_name?>"> 47 48 <p>価格</p> 49 <input type="text" name="price" style="width:200px" value="<?php echo $pro_price?>"><br> 50 <?php echo $disp_gazou; ?> 51 <p>画像を選んでください</p> 52 <input type="file" name="gazou" id=""> 53 <br> 54 <input type="button" onclick="history.back()" value="戻る"> 55 <input type="submit" value="OK"> 56 </form> 57 58 59</body> 60 61</html>
php
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title></title> 7</head> 8<body> 9 <?php 10 $pro_code = $_POST['code']; 11 $pro_name = $_POST['name']; 12 $pro_price = $_POST['price']; 13 $pro_gazou_name_old = $_POST['gazou_name_old']; 14 $pro_gazou = $_FILES['gazou']; 15 16 $pro_code =htmlspecialchars($pro_code,ENT_QUOTES,'UTF-8'); 17 $pro_name =htmlspecialchars($pro_name,ENT_QUOTES,'UTF-8'); 18 $pro_price =htmlspecialchars($pro_price,ENT_QUOTES,'UTF-8'); 19 20 if($pro_name ==''){ 21 print '商品名が入力されていません。<br/>'; 22 }else{ 23 print '商品名:'; 24 echo $pro_name; 25 print '<br/>'; 26 } 27 if($pro_gazou['size'] >0){ 28 if($pro_gazou['size'] >1000000){ 29 echo '画像が大きすぎます'; 30 }else{ 31 move_uploaded_file($pro_gazou['tmp_name'],'./gazou/'.$pro_gazou['name']); 32 echo '<img src="./gazou/'.$pro_gazou['name'].'">'; 33 echo '<br>'; 34 } 35 } 36 37 if(preg_match('/^[0-9]+$/',$pro_price)==0){ 38 print '価格をきちんと入力してください<br/>'; 39 }else{ 40 echo '価格'.$pro_price.'円 <br>'; 41 } 42 43 if($pro_name ==''||preg_match('/^[0-9]+$/',$pro_price)==0 ||$pro_gazou['size'] > 10000000){ 44 print '<form>'; 45 print '<input type="button" onclick="history.back()" value="戻る" >'; 46 print '</form>'; 47 }else{ 48 echo '上記のように追加します。<br>'; 49 print '<form method="post" action="pro_edit_done.php">'; 50 print '<input type="hidden" name="code" value="'.$pro_code.'">'; 51 print '<input type="hidden" name="name" value="'.$pro_name.'">'; 52 print '<input type="hidden" name="price" value="'.$pro_price.'">'; 53 echo '<input type="hidden" neme="gazou_name_old" value="'.$pro_gazou_name_old.'">'; 54 echo '<input type="hidden" neme="gazou_name" value="'.$pro_gazou['name'].'">'; 55 print '<br/>'; 56 print '<input type="button" onclick="history.back()" value="戻る">'; 57 print '<input name="signin" type="submit" value="OK">'; 58 print '</form>'; 59 60 } 61 ?> 62</body> 63</html>
php
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>done</title> 7</head> 8<body> 9 <?php 10 11 $pro_code = $_POST['code']; 12 $pro_name = $_POST['name']; 13 $pro_price = $_POST['price']; 14 $pro_gazou_name_old = $_POST['gazou_name_old']; 15 $pro_gazou_name = $_POST['gazou_name']; 16 17 $pro_code = htmlspecialchars($pro_code,ENT_QUOTES,'UTF-8'); 18 $pro_name = htmlspecialchars($pro_name,ENT_QUOTES,'UTF-8'); 19 $pro_price = htmlspecialchars($pro_price,ENT_QUOTES,'UTF-8'); 20 21 try{ 22 $db = new PDO('mysql:host=localhost;dbname=shop','aaa','1111'); 23 $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 24 $sql = 'UPDATE mst_product SET name=?, price=?,gazou=? WHERE code=?'; 25 26 $stmt = $db->prepare($sql); 27 $stmt->execute(array($pro_name,$pro_price,$pro_code,$pro_gazou_name)); 28 29 $stmt = null; 30 $db = null; 31 if($pro_gazou_name_old !=''){ 32 unlink('./gazou/'.$pro_gazou_name_old); 33 } 34 35 print '修正致しました<br/>'; 36 }catch(PDOException $e){ 37 echo $e->getMessage(); 38 exit; 39 } 40 ?> 41 <a href="pro_list.php">戻る</a> 42</body> 43</html>
回答1件
あなたの回答
tips
プレビュー