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

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

詳細はこちら
PHP

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

データベース

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

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

HTML

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

Q&A

解決済

3回答

2099閲覧

勉強で顧客検索システムを作っているのですが、データベースへの接続などを出来るようにしたいのですが上手くいきません。

noizi.

総合スコア27

PHP

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

データベース

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

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

HTML

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

0グッド

1クリップ

投稿2021/01/04 12:27

編集2021/01/04 13:41

前提・実現したいこと

勉強でPHP,HTMLで顧客検索システムというものを作っています。

顧客検索システムは顧客名、顧客番号を入力して検索ボタンを押すと入力内容と合致したデータ(顧客電話番号、顧客住所)がデータベースから取り出され、自動入力されるというシステムです。

もし、顧客名、顧客番号のどちらかがあるいは両方が入力されていなかったら「入力してください。」というメッセージが出力できるようにしたいです。

また、該当するデータがなかったら、「該当するデータがありません。再入力してください。」というメッセージとともに戻るボタンが出力できるようにしたいです。

エラーメッセージは出て、該当するところを修正しても同じエラーメッセージが出ます。

どのようなプログラムを作ったら理想のシステムができるのでしょうか?
(menu.phpのところは無視していただいて構いません。)

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

Warning: Undefined array key "pkey" in C:\xampp\htdocs\customer\c_search.php on line 2 Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\customer\c_search.php:4 Stack trace: #0 {main} thrown in C:\xampp\htdocs\customer\c_search.php on line 4

該当のソースコード

PHP,HTML

1<?php 2$pkey = trim($_REQUEST['pkey']); 3 4$db = mysql_connect('localhost', 'user', 'pass'); 5 6$rc = mysql_select_db('example'); 7 8$result = mysql_query("select * from example"); 9$result = mysql_query($query); 10 11if (!$result) { 12 $message = 'Invalid query: ' . mysql_error() . "\n"; 13 $message .= 'Whole query: ' . $query; 14 die($message); 15} 16 17while ($row = mysql_fetch_assoc($result)) { 18 echo $row['C_name']; 19 echo $row['C_num']; 20 echo $row['C_phon']; 21 echo $row['C_sa']; 22} 23 24mysql_free_result($result); 25?> 26 27<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 28 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 29<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> 30<head> 31 <meta charset="UTF-8"> 32 <meta name="viewport" content="width=device-width"> 33 <title>顧客検索</title> 34 <link rel="stylesheet" href="ser_style.css"> 35</head> 36<body> 37 38<div class="content"> 39 <h1>顧客検索</h1> 40 <div class="control"> 41 <label for="C_name">顧客名<span class="required">必須</span></label> 42 <input id="C_name" type="text" name="C_name"> 43 </div> 44 <div class="control"> 45 <label for="C_num">顧客番号<span class="required">必須</span></label> 46 <input id="C_num" type="number" name="C_num"> 47 </div> 48 <div class="control"> 49 <label for="C_phon">顧客電話番号</label> 50 <input id="C_phon" type="tel" name="C_phon"> 51 </div> 52 <div class="control"> 53 <label for="C_sa">顧客住所</label> 54 <input id="C_sa" type="text" name="C_sa"> 55 </div> 56 <div class="control"> 57 <button type="submit">検索</button> 58 <form action="menu.php" method="GET"> 59 <button type="submit">メニューへ</button> 60 </form> 61 </div> 62</div> 63</body> 64</html>

試したこと

・エラーメッセージが出るようにしたが上手くいかない
・自分なりにPHP文を書いてみた

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

使用ソフトはxammpで、ファイル名はC_search.phpとCSSファイルはser_style.cssです。

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

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

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

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

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

kei344

2021/01/04 13:47

https://teratail.com/questions/history-questions/313926 編集コメントは回答者に通知されません。質問本文か、特定の回答にコメントしましょう。また、現在の回答者がそろって言っていることは「参考にしている教本に問題があるので変えましょう」ということです。
noizi.

2021/01/05 07:23

分かりました。ご指摘ありがとうございます。以後気を付けます。
guest

回答3

0

ベストアンサー

mysql_ で始まる関数を使っていますが、なにか参考にしているドキュメントや書籍などがあるのでしょうか。
mysql_ で始まる関数群はいろいろ問題があって、後継の mysqli_ で始まる関数群に置き換わっております。
(とりあえず、iを書き加えるだけではありますが。)
データベースにアクセスできてないとかいう以前に使ってはいけない関数を使うのを改めて、mysqli系関数にしましょう。あるいは、PDOを使うやり方に全面的に直すのもおすすめです。

PHP: どの API を使うか - Manual

PDOを使う基本的なやり方は、こちらを参考にすると良いです。
ベテランも読み直すくらいの大事なことが書いてあります。

PHPでデータベースに接続するときのまとめ - Qiita

もしかして、古い書籍やドキュメントを参照しているなら、
PHP7以降に対応していることが確認できるものに切り替えましょう。
今更古いやり方を学んでも学び直しになるだけですし、無理やり古いPHPを動かすのは脆弱性対策上好ましくありません。
mysql_系で説明してあると、トランザクション処理をしてないことが問題になることもあります。

$_REQUEST['pkey']という参照の仕方は良くないです。
POSTで受けるかGETで受けるかをはっきり設計した上で実装するべきです。
その意識が甘いと、意図しないところで外部から不正にパラメータ受信してシステムに悪影響を及ぼします。

そして、存在するかしないかわからないのにいきなり参照する
$pkey = trim($_REQUEST['pkey']);
というやり方はよくありません。
(Warning: Undefined array key "pkey"の原因)
PHP: filter_input - Manual
を駆使すると楽です。

投稿2021/01/04 13:00

編集2021/01/04 13:23
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

mysql_connect()は随分前に非推奨になった関数です。最近の php のバージョンでは使用できません。
多分参考にしている教本が古いので、最低でも php 7 以降に対応した教本に変更するのが良いです。

投稿2021/01/04 12:51

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2021/01/04 12:52

だだかぶりw
退会済みユーザー

退会済みユーザー

2021/01/04 13:01

filter_input()のことをおすすめしないなんてte2jiさんらしくもない
退会済みユーザー

退会済みユーザー

2021/01/04 13:25 編集

フレームワークだと意識しなくていいし、フレームワークが使えないケースだと、生の request 読むケースが増えてきておすすめしにくくなった^^;
guest

0

mysql_connect()

は既に廃止されている関数なので使用できません。
厳密には、古いバージョンのPhPをインストールすれば使えますが、その場合でも使うべきではない関数です。

もし何かの教材に載っていたのであれば、古すぎて使えない教材なので、新しい教材に変更される事を強くお勧めします。

投稿2021/01/04 12:51

tanat

総合スコア18727

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問