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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

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

受付中

PHPでDB情報の遷移の仕方

tomotomo1234
tomotomo1234

総合スコア4

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

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

1回答

0評価

0クリップ

148閲覧

投稿2022/01/27 07:06

編集2022/01/28 10:46

前提・実現したいこと

ここに質問の内容を詳しく書いてください。

①商品の簡易的な作成編集ページを作っています。
②商品情報の編集をしたときに、セッションで元の商品データ・編集後のデータをリロードやバックしても残るようにしたいです。(edit.phpからupdate.phpに遷移、update.phpでDB更新)

色々とやり方等調べましたが、まだ自分の知識が中途半端なため、どこを訂正するのか分からないため教えていただけると幸いです。

よろしくお願いいたします。

発生している問題・エラーメッセージ

何も表示されない

該当のソースコード

edit.php

<?php session_start(); $_SESSION['s_name'] = "name"; $_SESSION['s_price'] = "price"; $dsn = 'mysql:host=localhost;dbname=ph2022;charset=utf8mb4'; $db_user = 'root'; $db_pass = ''; $id = $_GET['id']; $pdo = new PDO($dsn, $db_user, $db_pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $sql = "SELECT * FROM item_products WHERE id=:id"; $prepare = $pdo->prepare($sql); $prepare->bindValue(':id', $id); $prepare->execute(); $res = $prepare -> fetch(); print_r($res); $pdo = null; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>CRUD</h1> <h2>商品編集ページ</h2> <form action="update.php?id=<?php echo $id?>" method="POST"> <table> <tr> <td><b>商品ID</b></td> <td><?php echo $id;?></td> </tr> <tr> <td><b>商品名</b></td> <td><input type="text" name="name"></td> </tr> <tr> <td><b>単価</b></td> <td><input type="text" name="price"></td> </tr> </table> <input type="submit" value="更新"> </form> <a href="index.php">戻る</a> </body> </html>

update.php

<?php session_start(); $name = $_SESSION['s_name']; $price = $_SESSION['s_price']; $dsn = 'mysql:host=localhost;dbname=php2022;charset=utf8mb4'; $db_user = 'root'; $db_pass = ''; $id = $_GET['id']; $name = $_POST['name']; $price = $_POST['price']; $pdo = new PDO($dsn, $db_user, $db_pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $sql = "UPDATE item_products SET name=:name,price=:price WHERE id=:id"; $prepare = $pdo->prepare($sql); $prepare->bindValue(':id', $id); $prepare->bindValue(':name', $name); $prepare->bindValue(':price', $price); $prepare->execute(); $pdo = null; header('Location: edit.php?id='.$id);

試したこと

最初にUndefined index:と表示されていたためコードの場所など変えたりしてみました。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11172224531
https://giriemon.net/session-parameter/
基本的なセッションの仕方を調べ実行したらエラー吐くところか、本体自体は問題なく実行しエラーが何も表示されなくなりました。

補足情報(FW/ツールのバージョンなど)

Visual Studio Code.xampp

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

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