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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

1196閲覧

MySQLにあるデータベースから値を取得したいです。

karasu116

総合スコア2

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/05/09 06:48

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHPを勉強して1ヶ月ほどのものです。
シンプルな在庫管理システムを作成したいです。
プルダウンでショップ名、商品とその個数を選択すると、データベース上の在庫から選択された分の個数だけ引くようにしたいです。同様に、売れた商品の売上もデータベース上に反映させたいです。

MySQLにはテーブル「customer」と「goods」があります。

[customer]
●C_ID -> ショップのIDです。
●C_Name -> ショップの名前です。
●C_URIAGE -> ショップの売上です。

[goods]
●G_ID -> 商品のIDです。
●G_Name -> 商品の名前です。
●G_ZAIKO -> 商品の在庫です。
●G_Price -> 商品の値段です。

該当のソースコード

PHP

1<!doctype html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>在庫管理システム</title> 6</head> 7<body> 8<?php 9 $conn = mysqli_connect("******","******","******","******") or die("失敗です"); 10 mysqli_set_charset($conn,"utf8"); 11 //print "接続成功<br><br>"; 12 13 $sql1="SELECT * FROM customer"; 14 $sql2="SELECT * FROM goods"; 15 if($result1 = mysqli_query($conn, $sql1)) { 16 $i = 0; 17 while($row1 = mysqli_fetch_array($result1)) { 18 $id1[$i] = $row1['C_ID']; 19 $shop[$i] = $row1['C_Name']; 20 $i++; 21 } 22 } 23 else { 24 echo "クエリが実行できませんでした。\n"; 25 mysqli_close($conn); 26 exit(); 27 } 28 echo "<form name=\"frm\" method=\"post\" action=\"sample.php\">\n"; 29 echo "商店名 "; 30 echo "<td><select name=\"shopN\">\n"; 31 $i = 0; 32 while($i < count($shop)) { 33 if($row1['C_ID'] == $C_ID[$i]) 34 echo "<option value=\"{{$row1['C_ID']},{$C_ID[$i]},{$shop[$i]}\" selected>{$shop[$i]}</option>\n"; 35 else 36 echo "<option value=\"{{$row1['C_ID']},{$C_ID[$i]},{$shop[$i]}\">{$shop[$i]}</option>\n"; 37 $i++; 38 } 39 echo "</select></td></tr>\n"; 40 41 42 43 if($result2 = mysqli_query($conn, $sql2)) { 44 $i = 0; 45 while($row2 = mysqli_fetch_array($result2)) { 46 $id2[$i] = $row2['G_ID']; 47 $goods[$i] = $row2['G_Name']; 48 $zaiko[$i] = $row2['G_ZAIKO']; 49 $price[$i] = $row2['G_Price']; 50 51 //$goods[$i] = str_replace(',', '', $goods[$i]); 52 echo $goods[$i]; 53 $i++; 54 } 55 } 56 else { 57 echo "クエリが実行できませんでした。\n"; 58 mysqli_close($conn); 59 exit(); 60 } 61 echo "<br>商品名 "; 62 echo "<td><select name=\"goodsN\">\n"; 63 $i = 0; 64 while($i < count($goods)) { 65 if($row2['G_ID'] == $G_ID[$i]) 66 echo "<option value=\"{$row2['G_ID']},{$G_ID[$i]},{$goods[$i]}\" selected>{$goods[$i]}</option>\n"; 67 else 68 echo "<option value=\"{$row2['G_ID']},{$G_ID[$i]},{$goods[$i]}\">{$goods[$i]}</option>\n"; 69 $i++; 70 } 71 echo "</select></td></tr>\n"; 72 73 74 echo "<br>個数  "; 75 echo "<td><select> name= \"h\">\n"; 76 $i = 0; 77 $num = $i; 78 while($i < 1000) { 79 if($row2['G_ZAIKO'] == $G_ZAIKO[$i]) 80 echo "<option value=\"{$num}\">{$num}</option>\n"; 81 $i++; 82 $num = $i; 83 } 84 echo "</select></td></tr><br><br>"; 85 86 echo "      <input type=\"submit\" value =\" 確認ボタン \">"; 87 echo "</form>\n"; 88 89 mysqli_close($conn); 90?> 91 92</body> 93</html>

質問・聞きたいこと

①プルダウンで選択された商品の価格を取得するためにはどのような記述が必要でしょうか?
②次のように記述すると、例えば商品の「鉛筆」を選択した場合、「,,鉛筆」のようにカンマが2個表示されます。なぜでしょうか?

php

1<?php 2 $a = $_POST["shopN"]; 3 $b = $_POST["goodsN"]; 4 if(isset($a) && isset($b)) { 5 print("<br>".$b); 6 } else { 7 print("error"); 8 } 9?>

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

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

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

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

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

m.ts10806

2021/05/09 08:04

MySQLがデータベースそのものです。
guest

回答1

0

質問文の情報が足りないので分かる範囲で答えます。

①プルダウンで選択された商品の価格を取得するためにはどのような記述が必要でしょうか?

POSTで送信されてきた商品IDを元にもう一度DBのgoodsテーブルの情報から引っ張ればいいと思います。$sql3="SELECT * FROM goods where G_ID = 送信されてきた商品ID"; みたいな感じで。ただ、value=""の中身に商品名などの不要な情報も合わせて送られてきているので、ここは商品IDだけ送るようにした方がシンプルでいいでしょう。おそらく今は学習中のフェーズだと思うので今はこれでいいですが、セキュリティで色々気をつけることがありますので、その辺はいずれ学んでください。

②次のように記述すると、例えば商品の「鉛筆」を選択した場合、「,,鉛筆」のようにカンマが2個表示されます。なぜでしょうか?

$row2['G_ID']$G_ID[$i]}が空っぽだからでしょう。空の理由は質問に記載されている情報だけでは分かりません。データベースの中がどうなっているかの情報も合わせて提示されると分かるかもしれません。

追記)
$G_ID ってどこから出てきたんですかね? 急に湧いて出てきてる感じですが。

投稿2021/05/09 09:22

編集2021/05/09 09:37
AbeTakashi

総合スコア4537

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問