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

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

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

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

PHP

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

3回答

2861閲覧

検索フォームの利用

uverworld101nm

総合スコア172

MySQL

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

PHP

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2016/08/03 10:56

編集2016/08/04 07:32

検索フォームをgoogleで調べると、データベースに情報を貯めその情報を検索するときはmysqliに接続することが書かれたサイトが多く見つかります。(全部見ていないので100%とは言えません)しかし、apiの検索フォームについて書かれたサイトが見つかりません。
apiはデータベースを利用することはもとより禁じられており、またapi自体がデータベースなので検索フォームが設けられるはずです。
下記のコードは自分が考えたコードですが訂正するところがありましたら教えてください。お願いします。
※コードができましたので、表示しません。
検索フォームはでき、入力もできますが、カレーと入れても表示されません・

php

1<html> 2<head> 3<title>API_SAMPLE</title> 4</head> 5<body> 6<form action="" method="post" name="keyword"> 7 <p>検索したいキーワードを入力してください。</p> 8 <input type="search" name="search" placeholder="キーワードを入力"> 9 <input type="submit" name="search" value="検索"> 10</form> 11</body> 12</html> 13 14<?php 15if (isset ( $_POST ["search"] )) { 16$key='私のkey'; 17$count='50'; 18$large_area='〇〇'; 19$start ='2'; 20$genre=$_POST ["keyword"]; 21$format='xml'; 22$url='http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key='.$key.'&count='.$count.'&large_area='.$large_area.'&start='.$start.'&genre='.$keyword.'&format='.$format; 23$xml=simplexml_load_file($url); 24if(!$xml->shop){ 25 echo '見つかりませんでした'; 26 } else { 27 foreach($xml->shop as $r){ 28echo '<table>' ; 29 echo '<tr>'; 30 echo '<td>'; 31 echo $r->food->name; 32 echo '</td>'; 33 echo '<td>'; 34 echo $r->name; 35 echo '</td>'; 36 echo '</table>'; 37} 38} 39} 40 41 ?>

PHP

1<html> 2<head> 3<title>API_SAMPLE</title> 4</head> 5<body> 6<form action="" method="POST"> 7<input type="text" name="freeword"> 8<input type="submit"> 9</form> 10</body> 11</html> 12 13<?php 14if (isset ( $_POST ["search"] )) { 15$key='私のid'; 16$count='50'; 17$large_area='〇〇'; 18$start ='2'; 19$keyword=$_POST ["keyword"]; 20$format='xml'; 21$url='http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key='.$key.'&count='.$count.'&large_area='.$large_area.'&start='.$start.'&keyword='.$keyword.'&format='.$format;

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

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

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

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

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

Panzer_vor

2016/08/03 11:09 編集

こんなことわざわざ言うのもアレなんですが、 先ずKosuke_Shibuyaさんより頂いたコードを実行させる所まで漕ぎ着ける方が優先度が高いのでは? 目先の問題を先送りにして、 すぐに新しく質問を投げ直す姿勢はいただけないです。
date

2016/08/03 12:34

で結局質問内容が書いてなけど何を質問しているわけ
退会済みユーザー

退会済みユーザー

2016/08/04 01:03

問題解決以前の問題かと。同じ様な質問を複数しているようですし、もう少し日本語勉強してから来たほうが良いと思います。説明が分かりにくいことこの上ないです。最後にコードが出来次第とありますがそれこそ「何を言っているんだろう」と思います。コード出来てから投稿したらどうですか?あとAPIでググってどういった物か調べたほうが良いと思います
guest

回答3

0

また同じような質問を…
しかもわかりにくい…

検索フォームをgoogleで調べると、データベースに情報を貯めその情報を検索するときはmysqliに接続することが書かれたサイトが多く見つかります。(全部見ていないので100%とは言えません)

そもそも、「検索フォーム」という言葉の定義についての意味を履き違えていますよ。
あなたが検索したそのサイトのアドレスをいくつか見せてく下さい。

しかし、apiの検索フォームについて書かれたサイトが見つかりません。

なんのapiですか?
まぁ、いままでの質問からすると、ぐるなびAPIだと思いますが、
いままでの質問をここを見ている皆さんが知っているわけではないので、
なんのAPIかを名言しましょうね。

APIを使用しての検索ならいくらでもありますよ。
ぐるなびAPIにもありますし。
あなたの検索の方法が良くないと思いますよ。

apiはデータベースを利用することはもとより禁じられており、またapi自体がデータベースなので検索フォームが設けられるはずです。

禁じられてませんよ。
あなたは意味を履き違えています。

そして、APIはデータベースではありません。
APIとは何なのか理解していますか?
それ以前にAPIはなんの略か知ってますか?

検索フォームがもうけられるはずです

勝手に「はずです」って、どこからその自信が来るのでしょうか?

下記のコードは自分が考えたコードですが訂正するところがありましたら教えてください。お願いします。
※コードができしだい、表示します。

出来てから投稿しましょうね。

あなたのやりたいことは、すでに以前の質問への回答で他の方がソースコード付きで返答されていると思います。
まずそちらをみて、解決しましょう。

と、言ったところで、
いままでの流れを見る限り問題解決しないでしょうね…。

投稿2016/08/03 11:22

takaw

総合スコア128

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

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

uverworld101nm

2016/08/04 02:42

ご回答ありがとうございます。 第三者のデータベースに保存することは禁ずると利用規約に書かれています。
mpyw

2016/08/04 05:23

文脈的には「そのまま全部抜きとってクローンのサービスを作ったりすることは禁じます」程度の条項に見えます.自分のやりたいことに必要な一部の情報ならいいんじゃないでしょうか?
uverworld101nm

2016/08/04 07:05

大変お待たせしました。 phpコードができましたので、表示します。
uverworld101nm

2016/08/04 07:08

検索フォームで訂正する部分がありましたら、教えてください。
guest

0

ベストアンサー

また同じ質問してる・・・。
(それに回答する自分も自分だが・・・)

googleで調べるのは結構ですが、過去に質問した情報から自分で考えられないでしょうか?

APIを使うにはURLを使う。
https://webservice.recruit.co.jp/hotpepper/gourmet/v1/
APIで検索するにはパラメーターに条件を指定する。
https://webservice.recruit.co.jp/hotpepper/gourmet/v1/?address=新宿
条件を固定じゃなくて可変にしたい。
$address = "新宿";
$url = "https://webservice.recruit.co.jp/hotpepper/gourmet/v1/?address=".$address;
条件を画面から指定したい。画面で入力した値をサーバー(PHP)に渡すには?

<form>を使う。 PHPで値を取得するには? $_GETまたは$_POSTを使う。 $address = $_POST['address']; $url = "https://webservice.recruit.co.jp/hotpepper/gourmet/v1/?address=".$address;

って感じで順を追って考えればわかるでしょう?

投稿2016/08/04 00:18

ttyp03

総合スコア16996

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

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

uverworld101nm

2016/08/04 02:42

ご回答ありがとうございます。 実は住所をフリーワード検索したいのですが、そのやり方が分かりません。
ttyp03

2016/08/04 02:44

回答の内容が正に住所検索ですけど。
uverworld101nm

2016/08/04 02:53

僕が実装したいのは住所検索ですけど、$address = $_POST['address']; は$freewordで住所検索をするシステムじゃないですよね?
ttyp03

2016/08/04 02:55

$freewordってなんだ? ホットペッパーAPIのaddressの説明にはこうありますよ。 「お店の住所で検索(部分一致)します。」 なので「新宿」と指定すれば、住所に新宿が含まれる店が抽出できるというわけ。
uverworld101nm

2016/08/04 02:58

googleの検索エンジンみたいなのが実装したかったんです。 例えば、「神田 カレー」と検索すれば検索結果が表示されるものが実装したかったんです。
date

2016/08/04 03:14

ぐるなびにはfreewordはあるけどホットペッパーにはfreewordはありません それに該当しそうなのはkeywordかな
uverworld101nm

2016/08/04 03:46

間違えました。 keywordでした。
ttyp03

2016/08/04 03:49

用途的にはkeywordでしょうね。 ていうかこんなのはAPIのマニュアルみて該当しそうなやつでやってみればいいのでは? やってないのに質問してるんですか?
ttyp03

2016/08/04 03:52

ていうか、そもそもの質問の意味ってこういうことなんですか? どのパラメーターを使っていいかわからないってこと?
uverworld101nm

2016/08/04 04:14 編集

いいえ、そういうわけではありません。 どうやったら、フリーワード検索がやれるのか知りたかっただけです。
uverworld101nm

2016/08/04 04:15

keywordを使うのは分かりますが、どうやって値を渡すかわからなかったのです。
ttyp03

2016/08/04 04:17

ん~、過去に散々API使ってましたよね? 何でわからないのかがわからない…。 何がわからないのかがわからない…。
uverworld101nm

2016/08/04 04:27

検索フォームのフリーワード検索が分からないのです。
uverworld101nm

2016/08/04 04:28

新宿 カレーとホットペッパーapiのフリーワード検索フォームで検索するにはどういうコードを書けばいいですか?
ttyp03

2016/08/04 04:31

複数ワードのときにどうやってパラメーターに与えたらいいかわからないってことですか?
ttyp03

2016/08/04 04:36 編集

マニュアル読んでます? keyword 店名かな、店名、住所、駅名、お店ジャンルキャッチ、キャッチのフリーワード検索(部分一致)が可能です。文字コードはUTF8。半角スペース区切りの文字列を渡すことでAND検索になる。複数指定可能*2 *2 複数可のパラメータの指定方法 name=value1&name=value2&...または name=value1,value2,... 「半角スペース区切りの文字列を渡すことでAND検索になる」と書いてますよ。 なので、 keyword=新宿 カレー でいいんじゃないですか? *2の指定方法だと、 keyword=新宿&keyword=カレー になりますね。ただこちらだとANDなのかORなのかがわからないです。 まあやってみればわかることですけど。
uverworld101nm

2016/08/04 04:51

すみません、説明不足ですみません。 keywordの値を検索フォームに渡すにはどうすればいいですか? GETやPOSTでkeywordを渡したいのですが、詳しいやり方が分かりません。
ttyp03

2016/08/04 04:52

検索フォームの値をkeywordに、ではないの? 最初に回答してるし、過去に何度もやってるから見直して。
uverworld101nm

2016/08/04 05:18

<form action="" method="get"> <input type="text" name="freeword"> <input type="submit"> </form> <?php $freeword=($_GET['freeword']); ?> みたいな感じですか?
ttyp03

2016/08/04 05:19

そそ、そんな感じ。 できてるじゃないですか。 あとはやってみましょう。
ttyp03

2016/08/04 05:20

あ、わかってると思うけど、actionのところはPHPのファイル名ですよ。
uverworld101nm

2016/08/04 05:23

はい、大丈夫です。 僕のコードは正しいですか?
ttyp03

2016/08/04 05:24

今のところは大丈夫です。
ttyp03

2016/08/04 05:25

ちょっと待って。 先ほどのコード、あれでひとつのPHPですか?もしかして。
uverworld101nm

2016/08/04 05:29

違います笑 freewordのところしか書かなかっただけです。(freewordと書いてしまいました。正しくはkeywordでした。) このコードで、神奈川県と入力すると神奈川県のデータが表示されるんですよね?
ttyp03

2016/08/04 05:31

表示は別ですよ。 ここまではあくまでも画面で入力したキーワードで検索クエリを作るまでの話です。
uverworld101nm

2016/08/04 05:34

そうですか? その検索結果を表示するにはどうすればいいですか?
ttyp03

2016/08/04 05:36

とりあえず検索結果を確認したいだけなら、var_dumpでもすれば良いでしょう。 結果をちゃんと整形して出力したいなら、結果をパースして好みのHTMLに組み立てる必要があります。
uverworld101nm

2016/08/04 05:38

xml式で、検索結果の店名や住所はechoで出力するように書きました。
uverworld101nm

2016/08/04 05:39

僕が知りたいのは、keyword検索は僕のコードで正しいのか知りたいんです。
ttyp03

2016/08/04 05:41

自分が望んでいることができていれば正しいのでは? プログラムなんて書く人によって同じものなんてできないんだから、たとえ現状のコードに無駄が多かったとしても、望んだ結果になっているのなら今はそれでいいと思いますよ。
uverworld101nm

2016/08/04 05:51

ttyp03さんなら、どういうコードを書きますか?
ttyp03

2016/08/04 05:59

ここまでの処理ならたいした内容じゃないので、代わり映えしないですよ。
uverworld101nm

2016/08/04 06:03

そうですか。 もし僕のコードが正しく作動しないならまた連絡します。
uverworld101nm

2016/08/04 07:01

質問文にphpコードを書いたので、見てください。 検索しても自分が出したい検索結果が出ません。
ttyp03

2016/08/04 07:03

コードがないようですが。
uverworld101nm

2016/08/04 07:04

すみません、今表示しました。
uverworld101nm

2016/08/04 07:07

あと、addressの検索は、例えば埼玉県にある市町村を検索するシステムが作りたいんです。
ttyp03

2016/08/04 07:13

どうしたああなったorz <form action="" method="post" name="keyword"> フォームにnameなぞいらん(今の所) <input type="search" name="search" placeholder="キーワードを入力"> searchなんてtypeはない。さっきはtext使ってたじゃん。なぜ変えた。 nameはkeywordじゃないのか。なぜ変えた。 $url='http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key='.$key.'&count='.$count.'&large_area='.$large_area.'&start='.$start.'&genre='.$keyword.'&format='.$format; keyword検索したかったんじゃないのか?なぜgenre。なぜ変えた。
ttyp03

2016/08/04 07:14

>addressの検索は、例えば埼玉県にある市町村を検索するシステムが作りたいんです。 それ、ホットペッパー関係ないよね?
uverworld101nm

2016/08/04 07:26

すみません、応用したかったもので。
uverworld101nm

2016/08/04 07:34

すみません、コードをもとに直しました。
ttyp03

2016/08/04 07:36

<input type="text" name="freeword"> freewordってなんだ。keywordじゃないのか。なぜ変えた。 if (isset ( $_POST ["search"] )) { searchなんぞform内で宣言していない。
uverworld101nm

2016/08/04 07:45

ありがとうございます。 指摘した通りに、直しましたら直りました。 僕のために時間を割いてくれてありがとうございます。
ttyp03

2016/08/04 07:48

できてよかったです。 これからは自分でデバッグできる力を身につけましょう。
uverworld101nm

2016/08/04 07:50

はい、できるだけ自分でやれるように頑張ります。
guest

0

ちゃんとほかの方の言葉を聴いていますか?プログラム以前の問題だと思いますよ。
ググって色々ちゃんと調べてください。そして自分でやってください。
そしてそれをせずにただ聞くのはやめてください。そんな事の為に回答者さんの時間を盗らないで下さい。

投稿2016/08/08 04:50

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問