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

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

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

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

PHP

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

Q&A

解決済

2回答

4711閲覧

php検索結果の反映ができない

aikawa-

総合スコア9

MySQL

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

PHP

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

0グッド

0クリップ

投稿2018/06/28 17:38

はじめて質問をするのでつたない点があるかもしれません。

仕様環境 個人用windows10 php mysql windowspowershell cyberduck putty

phpとmysqlを使ってhttp://php.dori-mu.net/search.html#searchのサイトにある名簿の検索のアプリを制作したのですが検索結果(人名)の表示ができず原因がよくわかりません。

mysqlでデータベースを作成し、テーブルの追加を行い、insertで人物も追加したのでデータベース
にデータは作成できていると思います。データベースの指定ができていないために結果として表示されてないのか(db名は同じにしているのでipアドレスが違う?)?それともコードが不足しているのか?mysqlが起動させた状態でローカル環境を起動させてないから(puttyを使っているためmysqlかローカル環境のどちらかしか起動させれない)?のどれかが原因かと思うのですがどなたかわかる方いたらご教授おねがいします。

正規の表示
イメージ説明
私の表示
イメージ説明

index.html

<head> <title>PHP SEARCH</title> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body bgcolor="#FFFFFF" text="#000000"> <form name="" method="post" action="search.php"> 検索条件を指定してください<br> <table width="500" border="1" cellspacing="1" cellpadding="0"> <tr> <td>名前</td> <td> <input type="text" name="name" size="40" maxlength="255"> </td> </tr> <tr> <td>住所</td> <td> <input type="text" name="address" size="40" maxlength="255"> </td> </tr> <tr> <td>性別</td> <td> <input type="radio" name="gender" value="男性"> 男性  <br> <input type="radio" name="gender" value="女性"> 女性<br> <input type="radio" name="gender" value="その他"> その他</td> </tr> <tr> <td>スキル</td> <td> <input type="checkbox" name="skill[0]" value="ワープロ"> ワープロ<br> <input type="checkbox" name="skill[1]" value="表計算"> 表計算<br> <input type="checkbox" name="skill[2]" value="プログラミング"> プログラミング<br> <input type="checkbox" name="skill[3]" value="営業"> 営業<br> <input type="checkbox" name="skill[4]" value="音楽"> 音楽</td> </tr> </table> <input type="submit" name="submit" value="検索"> <input type="reset" value="条件クリア"> </form> </body> </html> コード

search.php

<head> <title>PHP SEARCH RESULT</title> <meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp"> </head> <body> <? $debug = false; //DB接続 mysql_connect("127.0.0.1","sample",""); mysql_select_db("sample"); if($debug) print_r($HTTP_POST_VARS); //エラーチェック //リクエストメソッドチェック if($REQUEST_METHOD != "POST") { print "Error: invalid method"; exit(); } //クエリ生成 $query = "SELECT * FROM search "; //検索条件生成 //名前 if(!empty($name)) { $name = addslashes($name); $where = "name = '$name' && "; } //住所 if(!empty($address)) { $address = addslashes($address); $where .= "address REGEXP '$address' && "; } //性別 if(!empty($gender)) { $gender = addslashes($gender); $where .= "gender = '$gender' && "; } //スキル if(!empty($skill)) { foreach($skill as $value) { $value = addslashes($value); $temp_where .= "skill REGEXP '$value' || "; } $temp_where = substr($temp_where, 0, -4); $where .= "(". $temp_where. ") && "; } if(!empty($where)) { $where = substr($where, 0, -4); $where = "WHERE " . $where; } $query .= $where; if($debug) { print "<BR><BR>"; print $query; } $result = mysql_query($query); $num_rows = mysql_num_rows($result); if($num_rows == 0) $message = "該当するデータはありませんでした"; else $message = $num_rows . "件ヒットしました"; ?> 検索結果<br> <?=$message?> <table border=1> <tr><td>名前</td><td>住所</td><td>性別</td><td>スキル</td></tr> <? while($row = mysql_fetch_assoc($result)): ?> <tr><td><?=$row[name]?></td><td><?=$row[address]?></td><td><?=$row[gender]?></td><td><?=$row[skill]?></td></tr> <? endwhile; ?> </table> <a href="input.html">再検索</a> </body> </html> コード

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

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

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

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

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

m.ts10806

2018/06/28 21:58

PHP,MySQLなど各バージョンを追記してください。
m.ts10806

2018/06/28 22:00

コードブロック内には実際のコードのみを記載してください。「コード」という文言は本当に入っているのでしょうか?入っていないのであれば、再現確認のためには不要です。また冒頭の```に```html ```PHPなどとすると指定プログラミング言語にあわせて最適にハイライトするようになっているのでご活用ください。
guest

回答2

0

ベストアンサー

参考にしている記事は プログラミングの世界でいうともはや化石、古文と言えるほど古い です。
もっと新しい記事を探して欲しい。

古いとする根拠

・今どき、文字コードでEUC-JPを指定しない。よほどの理由がない限りUTF-8を使う。
・PHP7の時代、mysql_* 系の関数は廃止されている。(動きません)公式マニュアル
・SQLのエスケープにaddslashesを使っている。公式マニュアル
・$HTTP_POST_VARS は非推奨(公式マニュアル)$HTTP_POST_VARS
・$REQUEST_METHODはかつての古いPHPのバージョンで、かつ register_global = on になっていれば、利用できたが、現在のPHP(といっても結構前)から削除。利用できない。

ちなみに、お使いのPHPのバージョンは?


良記事を探すためのヒント

・DBアクセスのために PDO または mysqli を使っていること
・プレースホルダを使っていること
・文字コードはUTF-8を使っていること
・前提となるPHPのバージョンを明記していること

※質問文で、英数字は全角でなく半角で書いて欲しい。少なくとも、半角と全角をごちゃ混ぜに書かないで欲しい。プログラマという人種は、嫌悪感を感じます。

投稿2018/06/28 18:12

編集2018/06/28 19:54
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

Kosuke_Shibuya さんの指摘どおり、参考にしてはいけないモノを参考にしています。

今参考にするならこの辺が定番です。
PHPでデータベースに接続するときのまとめ

追記
これ、php 動いてないんじゃないかなぁ。。。
html のソースコード見て、php のソースコードがそのまま表示されていないか確認してください。

たぶん、<? → <?php とすると、php として動くようになる気がします。

投稿2018/06/28 22:13

編集2018/06/28 22:46
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

m.ts10806

2018/06/28 23:24

バージョンや設定にもよりますが<?でもPHPとして動作させられます。
退会済みユーザー

退会済みユーザー

2018/06/29 00:05

設定してないんだと思いますよ。 まぁ、このソース動かすことにあまりメリット無いんで余談ですね。 表示の確認しましたが、<? の範囲が html としてブラウザに解釈されると、画像のような表現になりました。 ただ、なぜ2回表示されているのか、不明^^;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問