PHPフレームワークで検索窓を作る方法

このQ&Aのポイント
  • PHPフレームワークで検索窓を作る方法について知りたいです。特に、検索ワードの区切りや「-」を使って検索条件を指定する方法について教えてください。
  • MySQLデータベースで検索を行う際に、グーグルの検索窓のように検索ワードを区切ったり、検索条件を指定したりするプログラムを作りたいです。PHPフレームワークを使用することで、複雑なプログラムを簡単に実装できる方法があるのか知りたいです。
  • どのPHPフレームワークがおすすめの検索窓の作成方法を提供しているか知りたいです。グーグルのように検索ワードを区切ったり、検索条件を指定したりするプログラムを簡単に実装するためのフレームワークを教えてください。
回答を見る
  • ベストアンサー

PHPのフレームワークで検索窓を作りたい。

タイトルにフレームワークと書きましたが、実際cakePHPという名前を聞いたことある程度です。 僕のフレームワークの認識が、「よく使うけど複雑なプログラムのソースを個々のオブジェクトになって使いやすくなっているもの」 僕がやりたいことは、MYSQLで作ったデータベースにselect文で検索をかける際に、グーグルの検索窓のようにスペースで区切ることによって検索ワードを2つにできたり、「-」を前につけることによって!=の意味にしたりするようなプログラムです。 今の僕のレベルで作るとものすごくたくさんのifを多用して作る形になりそうなので、どこかにあるのではないかと思い質問します。 詳しい方お力添えください。

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • cheese014
  • ベストアンサー率85% (12/14)
回答No.1

> MYSQLで作ったデータベースにselect文で検索をかける際に、 > グーグルの検索窓のようにスペースで区切ることによって検索ワードを2つにできたり、 > 「-」を前につけることによって!=の意味にしたりするようなプログラム 「フレームワーク」よりも「ORM」という単語の意味を理解する方が先かな? http://codezine.jp/article/detail/5858 もっとも、いきなりORMから入るのは個人的には反対です。 それなりに学習コストがかかりますし、平のSQL文すら怪しい人がいきなり「ORM」からやると、まず間違いなく挫折します。 長い目で見たら… > 今の僕のレベルで作るとものすごくたくさんのifを多用して作る形になりそう 最初はそれで良いので、まずはきちんとしたSQL文が書けるようになって欲しいなと思います。

関連するQ&A

  • PHPフレームワークについて

    PHPフレームワークで教えてください。 最近、「フレームワーク」という言葉を知りました。 今後「フレームワーク」を使ってWEBアプリを作ったほうが楽なのかなと思っています。 そこで質問なのですが、Mojavi、Maple、Ethna、Zend、CakePHPなど色々あるみたいですが どれがいいでしょうか? 条件としては、ホスティングサーバーで動かすのでインストールが比較的楽な物(php.iniやhttpd.confとかいじらなくても良い物)です。 使いたいのは、 ・フォームからの入力チェック ・データベース(MySQL) ・Smarty ・管理ページは管理者だけ(認証) 位です。 分らない事が出てきたらネットで調べる事になると思うので出来るだけ情報が多いものがいいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • おすすめのPHPフレームワークは?

    PHP5上で動作し、コードを有る程度ジェネレートできるおすすめのフレームワークがあったらおしえてください。 ※重点としてはデータベース操作周りで便利なものがいいです。 検索すると ・symfony ・cakephp あたりをよく目にしますが、このうちどちらがお勧めかでも結構です。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPフレームワーク理解に役立つ、オブジェクト指向入門書

    PHPでWEBアプリを作りたいために、html,css,Mysql,PHPなどの基本的な事柄を勉強し、cakePHPというPHPフレームワークを最近使い始めました。オブジェクト指向やクラスについてはPHP入門書に書いてあるのを読んだだけで、なんとなくしか分かっていません。 PHPのオブジェクト指向やフレームワークとのつながりを理解できるような、初心者向けのお勧めの本はないでしょうか? オブジェクト指向について学ぶよい本は探しやすいのですが、PHPフレームワークを理解するために適した本はどれなんだろうと悩んでおります。基本的な概念はすべて同じだから、PHPとかまったく関係なくオブジェクト指向関係の本を読めばいいのでしょうか? 候補の本 ・オブジェクト指向でなぜつくるのか ・Head Firstオブジェクト指向分析設計 ・いちばんやさしい オブジェクト指向の本

    • 締切済み
    • PHP
  • PHPでの検索機能実装について(フレームワーク無し

    PHP初心者です。 現在、PHPにてDBからアクセスし、DBの検索を実装するプログラムを作成しております。 参考HPを元に下記のプログラムを作成したのですが、参考HPのコードではフレームワークが組み込まれており、 フレームワークを組んでいない私のコードではエラーが発生してしまいます。 エラー内容: Warning: mysql_fetch_array() expects parameter 1 to be resource, (省略) line63 Warning: mysql_free_result() expects parameter 1 to be resource, (省略) line74 参考HPでは、search.phpの17行目'$search'が宣言されてない状態で記載されて おりましたので、search.phpの最初にて宣言しました($searchでは検索キーを格納して おります)。 恐れいりますが、ご教示願います。 input.php 検索ワードを送信 <form action="search.php" method="POST"> <input type="text" name="searchkey"> <input type="submit" name="searchid" value="検索"> </form> search.php <?php $search = htmlspecialchars($_POST['searchkey']); //データベースに接続 if (!$con = mysql_connect("ホスト名", "user名", "パスワード")) { echo "接続エラー"; exit ; } //データベースを選択 if (!mysql_select_db("db名", $con)) { echo "データベース選択エラー"; exit ; } //フォームで送られてきた条件を元にSELECT文を作成 $sql = "SELECT * FROM listwhere name LIKE '% . $search . %'"; //SELECT文を実行 if ($res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } //検索結果<br> echo "<table border=1>" ; while($row = mysql_fetch_array($res)){ //エラー echo "<tr>" ; echo "<td>" . $row["id"] . "</td>" ; echo "<td>" . $row["name"] . "</td>" ; echo "<td>" . $row["date"] . "</td>" ; echo "<td>" . $row["registant"] . "</td>" ; echo "<td>" . $row["comment"] . "</td>" ; echo "</tr>" ; } echo "</table>" ; //結果セットの開放 mysql_free_result($res); //エラー //データベースから切断 mysql_close($con); ?>

    • ベストアンサー
    • PHP
  • PHPで検索ボタンを押さずに検索結果を返したい

    初めて質問させていただきます。 今、独学でPHP・MySQL・HTMLを使って、 検索結果を表示する画面を作っています。 作っているプログラムは、こんな感じです。 ================================================ xxx.php ================================================ <?php ここで、入力のエラーチェック MySQLに接続 入力したコードに対応するデータを取得 ?> <html> <form action="xxx.php" method="post"> <input type="text"> <select name="XX1"></select> <select name="XX2"></select> <input type="submit" name="submit" value="検索"> </html> ================================================ このプログラムでは、テキストタイプの部分にコードを 入力し、selectの部分で各項目を選択して、 最後に検索ボタンを押すと、 エラーチェックをした後に、検索結果のデータを データベースから取得してHTMLで表示します。 毎回、検索ボタンを押すという動作を減らすため、 SELECTの部分が変わったら、 検索ボタンを押さなくても、上のPHPで記述されて いる部分の処理に飛ばす方法がないかなあと 思いまして質問しました。 イメージ的にはJavaScriptの、onchangeみたいなものなのですが、何かいい方法は ないでしょうか? 以前似たような質問があったかもしれませんが、 すみませんがよろしくお願いいたします。

    • ベストアンサー
    • CSS
  • mysqlの検索結果を別のphpプログラムで参照できますか

    たとえば、A.phpというプログラムでmysqlデータを検索した結果を別のB.phpというプログラムで参照することはできますか? 必要に応じてデータベース接続、検索、データベースのクローズといった処理をその都度しなければいけないのでしょうか?

    • ベストアンサー
    • PHP
  • PHP+MySQLでスペースによる絞込み検索をかける方法

    宜しくお願いします。 PHPとMySQLで検索フォームを作っているのですが、OKWebやGoogleの様に、入力フォームにスペースで絞込み検索が出来る様にしたいと思っています。 実際に作ってみると、大変な問題に気付きました。 PHPからMySQLにSELECT文で絞込み検索かける時には、 mysql_query(select * from DB名 where COLUMN名 = '検索内容' and COLUMN名 = '検索内容'); といった形にしなければならないと思いますが、検索する人によってスペースで区切る回数は分からないので、実際に区切られた回数だけANDを自動的に作らなければ絞込みが出来ない事に気付きました。 しかし、PHPの関数だけで入力されているスペースの回数を割り出し、その数だけクエリの中に『and COLUMN名 = '検索内容'』を自動生成する方法なんて、あるのでしょうか?世の中の検索サイトを見ると、至極当たり前の様に出来ているので、何かやり方があるのだろうとは思いますが、皆目検討がつきません。どなたか教えて頂けると助かります。 何卒、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPでの検索機能がうまく動きません

    PHPでの検索機能が動かなくて困っています。 <form>で入力した値を、MySQLのWHEREで条件付けて取り出したいのですがうまくいきません....。 最終的に、 1、formに検索ワードを入力 2、DBから条件にあったレコードを持ってくる 3、持ってきた値を表示 という機能にしたいのですが....。 --- --- --- --- --- --- --- --- --- --- --- --- <?php //データベースに接続 mysql_connect('xxx', 'xxx', 'xxx') or die(mysql_error()); mysql_select_db('xxx'); mysql_query('SET NAMES UTF8'); //フォームで送られてきた条件を元にSELECT文を作成 if (!empty($_POST['nm'])) { $q = $_POST['nm']; $sql = 'select * from test_tb where name like "%$q%"'; $record = mysql_query($sql) or die(mysql_error()); } ?> <html> <body> <form action="" method="post">    名前:<input type="text" name="nm">    <input type="submit" name="exec" value="検索"> </form> <?php while($row = mysql_fetch_assoc($record)): ?> <?php echo $row['id']; ?> <?php echo $row['name']; ?> <?php endwhile ?> </body> </html> --- --- --- --- --- --- --- --- --- --- --- --- エラーは表示されないのですが、結果も表示されません。 さまざまなサイトや他の方の質問、MySQLやPHPの本を参考にしたのですが うまくいかなかったのでご質問させていただきました。 プログラミング初心者の上、はじめての質問で不備があると思いますが、 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • SQLで検索したいのですが..

    MYSQLで構築したデータベースのあるフィールドを検索したいのですが、データベースには文字化けしないように¥マーク(エスケープ文字!?)が入っているのです。 (例「イソノサザエ」は「イソ\ノサザエ」となっています) このような場合 select * from ○△table where name LIKE '%イソノ%'; とやっても"\"が入っているために検索がヒットしません。 どのようにすればselect文にヒットしてくれるでしょうか? アドバイスお願いします。 わかりにくい文章ですいません。 もしかしたらデータベースのカテゴリに書き込みしなくてはならないのかもしれませんが、perlのカテゴリに書込みさせて頂きました。

  • HTML>JSとやってきたものはPHPを学ぶ?

    HTML>JSとやってきたものはPHPを学ぶのが良いのでしょうか? http://mikumikuplay.com/it/beginner_should_learn_javascript_and_php/ より 同じJSだからNodejsがそのままの文法やメソッドで一番簡単で覚えることも少ないと思ったのですが、PHPもCを親に持っていて文法がそっくりなので、むしろこちらの方が簡単なのでしょうか? PHPは古い言語でできる人がいくらでもいるので、今からやっても価値も仕事量に対しての需要もあまりなく、新しいNodejsでないと後から追っかける人は絶対に勝てないのでこちらの方がいいに決まっていると思ったのですが、そうでもないのでしょうか? PHPの場合これからやるならLaravelが一番新しくて勢いがあるので良いですかね? こちらがJSでいうreactとかんがえてよいでしょうか? Cakephpは古いがまだ使われているjqueryという位置ですかね? >>> これからは「CakePHP」と「Laravel」がPHPの2大フレームワークとして競争することとなりそうです。現在はCakePHPが主流ですが、数年前から少しずつ検索数が減り始めており、注目度が下がりはじめているのは間違いなさそうです。とは言うものの、今の日本でもっとも使用されているPHPフレームワークだということも事実ですので、今後1~2年で一気に衰退するということは無いと思われます。 しかし、もっと長期的な目で見てみると将来的にも需要の高いPHPフレームワークであるとは必ずしも言い切れないようになってきました。対してLaravelはリリース当初から徐々に注目度が上がってきており、現在もCakePHPに迫る勢いで人気を獲得し続けていますので、今後もさらに人気が上がると思われます。 最後にDBは相変わらずmysqlがいいそうですね。mongodbは中小規模では使われていないんですよね。

    • ベストアンサー
    • PHP

専門家に質問してみよう