- ベストアンサー
PHPで不動産検索を作っています。がつまずいています。
不動産屋さんでよくある条件検索を作成したいと思っています。 検索プログラムは外注しようかと思ったのですが勉強のためにも 時間に余裕があるため自作をしようと思っています。 よくある下記のような条件検索を作成したいと思っています。 http://www.apamanshop.com/search/SelCond.asp 手順は 条件検索ページ→条件にあった物件一覧の表示ページ→詳細物件情報ページ というように考えています。 ■PHPでは普段簡単な関数くらいしか使ったことがありません。 どのような手順でプログラムするのが良い方法でしょうか? ■フリーのスクリプトなどあればソースを参考に自分で作ってみたいのですが存在しますでしょうか? ■物件数は100件くらいなのですが、SQLなしで検索プログラムはつくれますか? このような質問で申し訳ないのですが、お力をお借りできれば幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
私はSQLなしで検索スクリプトを作っていますが、この条件なら可能かと思います。 検索条件を連想配列に格納し、配列のキーによって、検索用の関数を識別する、という仕組みです。 注意しなければならないのは、検索条件が「AND条件」「OR条件」のどちらであるか。 「AND条件」なら簡単で、与えられた検索条件を全て満たす物件だけを表示すれば良いことになります。 (検索をループさせて、1つでも条件に合わなければ、その時点でbreakすればいいわけです) 「OR条件」だと少し面倒です。 例えば、「間取り」に「1LDK」「2LDK」が指定されている場合は、OR条件となりますが、他の条件を満たした上で「OR」を満たさなければなりません。 $key[0]['検索条件1'], $key[1]['検索条件2'] のようにして、連想配列を多次元配列にし、「間取り」以外の条件を全てコピーして配列に格納する必要があります。 更に、OR条件があると非常にややこしいです。 「間取り」と「建物種別」のそれぞれに2つずつOR条件がある場合は、4通りの配列を作らなければなりません。 後は、「完全一致」か「部分一致」かで、if文, preg_match を使い分けるというところかと思います。 ちなみに、私はCSV形式でデータを持っていました。
その他の回答 (3)
- gryfinndors
- ベストアンサー率18% (127/671)
SQLはちょっと敷居が高いですよね。 自分なら詳細ページを独立した1つのページにして、そのファイル名を検索する仕組みにします。 そして検索テーブルは連想配列で例えば 0001.htm-> 20k-,apart,5min... みたいにして検索情報を一つの文字列にしてしまいます。 検索画面でPOSTしてきたデータで連想配列の値を正規表現で比べてマッチしたキーが探している物件のHTML 複数だすならマッチしたキーを別の一次元配列に溜めておく。 検索ページが硬直的になるけど、一番簡単で早いと思いますよ。 詳細ページはIFRAMEで呼び出せば必要な部分の記述だけでいいし。
お礼
ありがとうございます。 手順を教えていただけると学習する上でとてもやりやすいです。 たすかりました。
- lv4u
- ベストアンサー率27% (1862/6715)
質問内容を見た限りでは、自分だけ、あるいは社内限定の利用、あるいは学習のためだけならいいと思いますが、できあがったものを公開するのはやめたほうがいいと思います。理由は以下のとおりです。 1)システムの有用性の問題 たった100件程度の物件で、複雑な検索条件を入れて絞り込む必要があるでしょうか?全件を、項目を絞って見やすい条件で並べかえて、ページング表示し、詳細が見たければ、その時点で物件をクリックする程度でいいような気がしますが。 2)技術的な面の問題 No.1さんが述べられているように、データベース、つまりSQLの利用が、コードの簡略化を考えると、ほぼ必須だと思います。つまり、データベースやSQL文の知識が要求されます。これらの知識が無いなら、大変だと思います。それ以外にも、画面展開する上での、セッションの知識など、いろいろ覚えることが多いと思います。 で、質問に回答するならば、 >>■PHPでは普段簡単な関数くらいしか使ったことがありません。 どのような手順でプログラムするのが良い方法でしょうか? それを分かりやすく説明すると、書籍が1冊書ける分量になると思います。 >>■フリーのスクリプトなどあればソースを参考に自分で作ってみたいのですが存在しま>>すでしょうか? 検索のサンプルソースは、Web上で公開されていたり、書籍に付属しているCDなどで沢山あると思います。 >>■物件数は100件くらいなのですが、SQLなしで検索プログラムはつくれますか? SQL無しはやめたほうがいいです。 なお、現在、世界中で流行のWeb構築ツールである「Ruby on Rails」は、Javaの10倍の生産性といわれています。たぶん、PHPと比較しても、そのくらいの差はあると思えますので、これから勉強されるなら、こちらをお勧めします。できあがるシステムが簡単に流行のWeb2.0風になることも嬉しい点です。(サーバ環境によっては使えないことがあるので、もし利用されるなら、利用環境をご確認ください)
- yambejp
- ベストアンサー率51% (3827/7415)
>■物件数は100件くらいなのですが、SQLなしで検索プログラムはつくれますか? SQLのありなしで格段にソースが違います。 SQLがあると検索自体はSQLがやってくれるので SQLへのインタフェースだけつくればいいですが ない場合は、検索条件をプログラムのフローに組み込んで いく必要があります。 ある意味PHPらしい構造になりますが、なにか検索条件を つけるたびに構造が変わってしまい、汎用性にかけるかも しれません。 個人的にはできればSQLにチャレンジしていただきたい ところですが、限界を感じているのであれば無理は 申し上げられないところです。 とりあえず、データをcsvかxmlで持つようにすれば、 よいので、csv系の関数を学習し、preg_matchなどの 正規表現を学習するというステップでしょうか。
お礼
ありがとうございます。 手順を教えていただけると学習する上でとてもやりやすいです。 たすかりました。
お礼
カンマ区切りでデータを入れていこうと思います! ありがとうございました。 まずはand検索からやってみます!