質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

1回答

1211閲覧

一度データベースに格納した情報を書き換えたい

cafe1111

総合スコア62

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2020/07/17 08:52

■やりたいこと
一度データベースに格納した情報を書き換えたい
■問題点
書き換えられるようにコードを書いたのだが何故かデータベースの情報が変わらない。

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>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/07/17 10:15

おそらく、回答者観点からあまり評判の良くない(ひどい実装の)書籍を利用されているものと思います。 同じ書籍を利用したと思われる質問も出ているはずです。 pro_list.phpとか作ったファイル名で検索してみてください。
cafe1111

2020/07/17 11:49

わかりました。 調べてみます。
guest

回答1

0

ベストアンサー

$_POSTをつかったり、投入するデータをhtmlspecialcharsを利用したりするのをやめるところから

投稿2020/07/17 08:55

yambejp

総合スコア114769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/07/17 08:58

質問もダラダラ冗長に書かずに、何をもとにどう変更するしようかを提示の上 当該箇所だけしぼって質問してください
cafe1111

2020/07/17 09:24

$_POSTなどの件なのですが、今自分は本でphpの勉強をしていて本にはこのように記載されています。 それが間違っているから使うなと言われても学習している身からするとじゃあどうすればいいのとなってしまいます。 どこでエラーが起きているのか分からなかったのでコードを全部のせた次第です。 長くなってしまいすみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問