🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

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

PHP

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

Q&A

1回答

1147閲覧

postされたデータをブラウザに表示できない

fthc

総合スコア12

MySQL

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

PHP

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

0グッド

1クリップ

投稿2021/01/15 22:10

編集2021/01/15 22:20
コード <?php if (isset($_POST['add'])) { $name = $_POST['name']; $number = $_POST['number']; $often = $_POST['often']; $naiyou =$_POST['naiyou']; try { $db = new PDO('mysql:host=localhost;dbname=sample','root','pass'); $sql = 'select * from users where name=? and number=? and often=? and naiyou=?'; $stmt = $db->prepare($sql); $stmt->execute(array($name,$number,$often,$naiyou)); $stml = null; $result = $stmt->fetchall(PDO::FETCH_ASSOC); var_dump($result); $db = null; } catch (PDOException $e) { echo $e->getMessage(); exit; } } ?>

別ページでselectで4箇所を選択しname=addのsubmitボタンを押すと予定一覧ページで入力した内容が表示されるようにしたいのですが何も表示されていません。エラーは書いてありません。
tableにはちゃんと入力したデータが入っていてtablename,databasenameも合っています。
ご回答宜しくお願い致します。

if (isset($_POST['add'])) {
$name = $_POST['name'];
$number = $_POST['number'];
$often = $_POST['often'];
$naiyou =$_POST['naiyou'];を消してもう一度してみると
$stmt->execute(array($name,$number,$often,$naiyou));がUndefined variableと出たので全部入力してやってみるとUndefined variable の下にarray(0){}と出ました。

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

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

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

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

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

m.ts10806

2021/01/16 00:24

どういうデータがあってどういう入力をしたんでしょうか。
fthc

2021/01/16 00:40

select optionの選択肢から選択できるようにしていてその欄がname. number.often.naiyouの4つあってnameがaddのsubmitボタンを押すと、データをPostするようにしていてtableにはちゃんと選択した文字が表示されているのでpostは出来ていると思います。
m.ts10806

2021/01/16 00:42

(2回目)どういうデータがあってどういう入力をしたんでしょうか。 データベースに保存されているデータそのものを聞いています。 WHERE句を見ると全てイコールでandで検索されています。 1つでも一致しなければ取得できないのは当然です。
fthc

2021/01/16 01:09

左から順に教科名、数字、頻度(週月年)で内容は詳細を書く欄で書いても書かなくてもいいようにしていて、 例えば 英語 1 ヶ月 単語 教科名は5,数字は12個の選択肢があります。 のようにしています。
m.ts10806

2021/01/16 01:27

なるほど。伝わらないか。 いずれかの形で「実際のデータ」を提示してください。 ・DB直かphpMyAdminなどのツールからselect * from users を実行した結果の画面キャプチャ ・CREATE TABLE文とINSERT文 文章説明されても「実際のデータ」に勝るものはありません。 赤の他人に見てもらうために必要なのは「実際のコード」「実際のデータ」のみです。
m.ts10806

2021/01/16 01:41

いずれにしても以前の質問(解決済み)で私が回答に書いたことはやってみたのでしょうか。 > https://teratail.com/questions/315839 > また、PHP実行する前にSQLをDBに対して実行し、想定の結果が得られるか確認してください。
guest

回答1

0

こまかいミスがいくつかありますね。こんな感じで

PHP

1<?php 2$add = filter_input(INPUT_POST,'add'); 3$name = filter_input(INPUT_POST,'name'); 4$number = filter_input(INPUT_POST,'number'); 5$often = filter_input(INPUT_POST,'often'); 6$naiyou = filter_input(INPUT_POST,'naiyou'); 7var_dump($add); 8if (!is_null($add)){ 9 try { 10 $pdo = new PDO($dsn, $user,$password); 11 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 12 $sql = 'select * from users where name=? and number=? and often=? and naiyou=?'; 13 $stmt = $db->prepare($sql); 14 $stmt->execute([$name,$number,$often,$naiyou]); 15 $rows = $stmt->fetchall(PDO::FETCH_ASSOC); 16 print_r($rows); 17 } catch (PDOException $e) { 18 die($e->getMessage()); 19 } 20} 21

投稿2021/01/16 06:54

yambejp

総合スコア116688

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

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

fthc

2021/01/16 20:44

ご回答ありがとうございます。 入力するとブラウザでnull とだけ表示されてデータベースの中身は表示できないです。
yambejp

2021/01/17 01:46

つまりaddが送られてきていないので、送られてくるようにソースを書いてください
fthc

2021/01/18 03:49

基礎ができていないと思うのでもう一度勉強し直してからやってみます。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問