不動産屋さんでよくある条件検索を作成したいと思っています。
検索プログラムは外注しようかと思ったのですが勉強のためにも
時間に余裕があるため自作をしようと思っています。
よくある下記のような条件検索を作成したいと思っています。
http://www.apamanshop.com/search/SelCond.asp
手順は
条件検索ページ→条件にあった物件一覧の表示ページ→詳細物件情報ページ
というように考えています。
■PHPでは普段簡単な関数くらいしか使ったことがありません。
どのような手順でプログラムするのが良い方法でしょうか?
■フリーのスクリプトなどあればソースを参考に自分で作ってみたいのですが存在しますでしょうか?
■物件数は100件くらいなのですが、SQLなしで検索プログラムはつくれますか?
このような質問で申し訳ないのですが、お力をお借りできれば幸いです。
No.2ベストアンサー
- 回答日時:
私は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形式でデータを持っていました。
参考URL:http://www.php.net/manual/ja/language.types.arra …
No.4
- 回答日時:
SQLはちょっと敷居が高いですよね。
自分なら詳細ページを独立した1つのページにして、そのファイル名を検索する仕組みにします。
そして検索テーブルは連想配列で例えば
0001.htm-> 20k-,apart,5min...
みたいにして検索情報を一つの文字列にしてしまいます。
検索画面でPOSTしてきたデータで連想配列の値を正規表現で比べてマッチしたキーが探している物件のHTML
複数だすならマッチしたキーを別の一次元配列に溜めておく。
検索ページが硬直的になるけど、一番簡単で早いと思いますよ。
詳細ページはIFRAMEで呼び出せば必要な部分の記述だけでいいし。
No.3
- 回答日時:
質問内容を見た限りでは、自分だけ、あるいは社内限定の利用、あるいは学習のためだけならいいと思いますが、できあがったものを公開するのはやめたほうがいいと思います。
理由は以下のとおりです。1)システムの有用性の問題
たった100件程度の物件で、複雑な検索条件を入れて絞り込む必要があるでしょうか?全件を、項目を絞って見やすい条件で並べかえて、ページング表示し、詳細が見たければ、その時点で物件をクリックする程度でいいような気がしますが。
2)技術的な面の問題
No.1さんが述べられているように、データベース、つまりSQLの利用が、コードの簡略化を考えると、ほぼ必須だと思います。つまり、データベースやSQL文の知識が要求されます。これらの知識が無いなら、大変だと思います。それ以外にも、画面展開する上での、セッションの知識など、いろいろ覚えることが多いと思います。
で、質問に回答するならば、
>>■PHPでは普段簡単な関数くらいしか使ったことがありません。
どのような手順でプログラムするのが良い方法でしょうか?
それを分かりやすく説明すると、書籍が1冊書ける分量になると思います。
>>■フリーのスクリプトなどあればソースを参考に自分で作ってみたいのですが存在しま>>すでしょうか?
検索のサンプルソースは、Web上で公開されていたり、書籍に付属しているCDなどで沢山あると思います。
>>■物件数は100件くらいなのですが、SQLなしで検索プログラムはつくれますか?
SQL無しはやめたほうがいいです。
なお、現在、世界中で流行のWeb構築ツールである「Ruby on Rails」は、Javaの10倍の生産性といわれています。たぶん、PHPと比較しても、そのくらいの差はあると思えますので、これから勉強されるなら、こちらをお勧めします。できあがるシステムが簡単に流行のWeb2.0風になることも嬉しい点です。(サーバ環境によっては使えないことがあるので、もし利用されるなら、利用環境をご確認ください)
No.1
- 回答日時:
>■物件数は100件くらいなのですが、SQLなしで検索プログラムはつくれますか?
SQLのありなしで格段にソースが違います。
SQLがあると検索自体はSQLがやってくれるので
SQLへのインタフェースだけつくればいいですが
ない場合は、検索条件をプログラムのフローに組み込んで
いく必要があります。
ある意味PHPらしい構造になりますが、なにか検索条件を
つけるたびに構造が変わってしまい、汎用性にかけるかも
しれません。
個人的にはできればSQLにチャレンジしていただきたい
ところですが、限界を感じているのであれば無理は
申し上げられないところです。
とりあえず、データをcsvかxmlで持つようにすれば、
よいので、csv系の関数を学習し、preg_matchなどの
正規表現を学習するというステップでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
foreachのなかで次のキーを参照...
-
file_existsでファイル名の部分...
-
$_SESSIONに二次元配列を使える...
-
ファイルの書き込みについて教...
-
phpとmysqlで「あいまい検索」...
-
C言語の配列をPush(追加)する...
-
verilogで、配列の一部をタスク...
-
関数の引数に配列を初期化なしで。
-
配列のX件目~Y件目を全件ルー...
-
外部ファイルの出力
-
UTF-8のXMLがSJISのPHPで文字化け
-
リストボックス複数選択抽出方法
-
ヒアドキュメントの中のfor文
-
Mac トロイの木馬”Flashback"に...
-
読み(あ行~わ行)ごとに分け...
-
forを使わずにforeach文のみで...
-
CArrayの要素としてCStringArra...
-
textより$$にはさまれた文字列...
-
プルダウンメニューにDBの内容...
-
配列のポインタ配列のポインタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
file_existsでファイル名の部分...
-
漢字のソートについて
-
PHPのカッコ[ ]の使い方について
-
ネストが深い時のforeachはどう...
-
foreachのなかで次のキーを参照...
-
チェックボックス複数選択 mys...
-
配列一致(要素順番は違うが内容...
-
PHPにてクラスを配列にすること...
-
postgresql関数をつかったレコ...
-
PHP 配列の添字に変数は使えない?
-
PHP掲示板で新着順に表示させた...
-
URLのサブドメインとドメイン部...
-
SESSION変数の2次元配列
-
PHPで配列をPOSTデータで送った...
-
$_POSTを一括してサニタイズし...
-
Smartyを使って、テーブルを表示
-
【Smarty】foreach関数やsectio...
おすすめ情報