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

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

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

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

PHP

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

Q&A

解決済

2回答

2470閲覧

テキストエリアの項目をSELECTで表示し、MySQLにUPDATEしたいです

terapro

総合スコア39

MySQL

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

PHP

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

0グッド

0クリップ

投稿2019/06/10 04:40

編集2019/06/10 04:41

テキストエリアにMySQLに格納したデータを表示させ、それを編集してMySQLにUPDATEしたいです。
SELECT文でテキストエリア内に表示するところまではできたのですが、上手くUPDATEできません。おわかりになる方、どうぞお力をおかしください、よろしくお願いします。

create table timer (menu_id int, menu_list varchar(255), note varchar(255), user int, total_time time, timestamp timestamp);

|menu_id|menu_list|note|user|total_time|timestamp
|:--|:--:|--:|
|1|タイトル|メモメモメモ|1000|1:30|1546365845|

PHP

1<?php 2 3// xampp 4$db['db_host'] = "localhost"; 5$db['db_user'] = "root"; 6$db['db_pass'] = "***"; 7$db['db_name'] = "timer"; 8 9foreach($db as $key => $value){ 10define(strtoupper($key), $value); 11} 12 13$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); 14 15?>

PHP

1ヘッダー 2<?php include "../includes/db.php"; ?> 3<?php // session_start(); ?> // 仮で入れてあります。 4 5本文 6 <div class="container-fluid"> 7 8 <?php 9 if(isset($_GET['edit'])) { 10 $user = $_SESSION['user']; 11 $post_menu_list = $_POST['menu_list']; 12 $post_note = $_POST['note']; 13 $get_menu_id = $_GET['menu_id']; 14 15 $query_menu_list = "UPDATE menu SET menu_list = '{$post_menu_list}' "; 16 $query_menu_list .= "WHERE menu_id = '{$get_menu_id}'"; 17 $result_menu_list = mysqli_query($connection, $query_menu_list); 18 19 $query_note = "UPDATE menu SET note = '{$post_note}' "; 20 $query_note .= "WHERE menu_id = '{$get_menu_id}'"; 21 $result_note = mysqli_query($connection, $query_note); 22 } 23 ?> 24 25 <!-- Page Heading --> 26 <div class="row"> 27 <div class="col-lg-12"> 28 <h1 class="page-header"> 29 設定画面 30 <small>ユーザID: <?php echo $_SESSION['user']; ?></small> 31 </h1> 32 <div class="col-xs-6"> 33 <form action="index.php" method="post"> 34 <div class="form-group"> 35 <label>メニュー</label> 36 <input type="text" class="form-control" name="menu_list" value="<?php 37 if(isset($_GET['menu_id'])){ 38 $getmenuid = $_GET['menu_id']; 39 $query = "SELECT * FROM menu WHERE menu_id = '{$getmenuid}'"; // WHERE user = '{$user}' 後で追加 40 $select_note_query = mysqli_query($connection, $query); 41 while($row = mysqli_fetch_array($select_note_query)) { 42 $note = $row['menu_list']; 43 echo $note; 44 } 45 } 46 ?>"> 47 </div> 48 <div class="form-group"> 49 <label for="cat-title">メモ</label> 50 <textarea class="form-control" name="note" rows="10"><?php 51 if(isset($_GET['menu_id'])){ 52 $query = "SELECT * FROM menu WHERE menu_id = '{$getmenuid}'"; // WHERE user = '{$user}' 後で追加 53 $select_note_query = mysqli_query($connection, $query); 54 while($row = mysqli_fetch_array($select_note_query)) { 55 $note = $row['note']; 56 echo $note; 57 } 58 } 59 60 ?></textarea> 61 <small id="emailHelp" class="form-text text-muted">現在のタスクの取り掛かり中の内容をメモしてください</small> 62 </div> 63 <div class="form-group"> 64 <?php if(isset($_GET['menu_id'])) { 65 echo "<input class='btn btn-primary' type='submit' name='edit' value='編集'>"; 66 } else { 67 echo "<input class='btn btn-primary' type='submit' name='submit' value='登録'>"; 68 } 69 ?> 70 71 </div> 72 </form> 73 </div> 74 75 <div class="col-xs-6"> 76 <table class="table table-bordered table-hover"> 77 <thead> 78 <tr> 79 <th>メニュー</th> 80 <th>累積時間</th> 81 <th>セット</th> 82 <th>編集</th> 83 <th>削除</th> 84 </tr> 85 </thead> 86 <tbody> 87 <?php 88 $query = "SELECT * FROM menu"; // WHERE user = '{$user}' 後で追加 89 90 $select_menu_query = mysqli_query($connection, $query); 91 while($row = mysqli_fetch_array($select_menu_query)) { 92 $menu_id = $row['menu_id']; 93 $menu_list = $row['menu_list']; 94 $total_time = $row['total_time']; 95 echo "<tr>"; 96 echo "<th>{$menu_list}</th>"; 97 echo "<th>{$total_time}</th>"; 98 echo "<th>セット</th>"; // 本番にセット 99 echo "<th><a href='index.php?menu_id={$menu_id}'>編集</a></th>"; 100 echo "<th>削除</th>"; 101 echo "</tr>"; 102 } 103 104 ?> 105 </tbody> 106 </table> 107 </div> 108 109 110 </div> 111 </div> 112 <!-- /.row --> 113 114 </div>

以上、テキストエリア内に表示はできるのですが、UPDATEがMySQLに入りません。

環境は、
XAMP
フレームワークはBootstrapを使っています。

登録(INSERT)のロジックはまだ作っておらず、
editボタンを押した時にMySQLにUPDATEしたいです。

お手数をおかけしますが、よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

menu_idはGETなのでこれでは送信出来ていない気がします。

html

1<form action="index.php" method="post">

ここを

html

1<form action="index.php?menu_id={$menu_id}" method="post">

でしょうか。

投稿2019/06/10 06:01

hide0128

総合スコア245

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

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

terapro

2019/06/11 01:25

<form action="index.php?menu_id=<?php echo $_GET['menu_id']; ?>" method="post"> で入りました!大ヒントありがとうございました!
hide0128

2019/06/12 06:15

入りましたか!良かったです。
guest

0

まずRDBからもらったデータは直接HTMLに出力してはいけません
1レコードごとに行をかえるなら改行マークを付加してください

PHP

1 echo $note; 2↓↓↓ 3 echo htmlspecialchars($note).PHP_EOL;

更新するときはidとname(textareaの値)の組み合わせを利用して
prepareを利用してデータ投入します
submitしてもいいでしょうし、ajaxでバックグラウンドで処理してもよいでしょう

投稿2019/06/10 04:49

yambejp

総合スコア114583

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

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

terapro

2019/06/11 01:23

ありがとうございます、実装しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問