不動産屋さんでよくある条件検索を作成したいと思っています。
検索プログラムは外注しようかと思ったのですが勉強のためにも
時間に余裕があるため自作をしようと思っています。
よくある下記のような条件検索を作成したいと思っています。
http://www.apamanshop.com/search/SelCond.asp
手順は
条件検索ページ→条件にあった物件一覧の表示ページ→詳細物件情報ページ
というように考えています。
■PHPでは普段簡単な関数くらいしか使ったことがありません。
どのような手順でプログラムするのが良い方法でしょうか?
■フリーのスクリプトなどあればソースを参考に自分で作ってみたいのですが存在しますでしょうか?
■物件数は100件くらいなのですが、SQLなしで検索プログラムはつくれますか?
このような質問で申し訳ないのですが、お力をお借りできれば幸いです。
No.1
- 回答日時:
>■物件数は100件くらいなのですが、SQLなしで検索プログラムはつくれますか?
SQLのありなしで格段にソースが違います。
SQLがあると検索自体はSQLがやってくれるので
SQLへのインタフェースだけつくればいいですが
ない場合は、検索条件をプログラムのフローに組み込んで
いく必要があります。
ある意味PHPらしい構造になりますが、なにか検索条件を
つけるたびに構造が変わってしまい、汎用性にかけるかも
しれません。
個人的にはできればSQLにチャレンジしていただきたい
ところですが、限界を感じているのであれば無理は
申し上げられないところです。
とりあえず、データをcsvかxmlで持つようにすれば、
よいので、csv系の関数を学習し、preg_matchなどの
正規表現を学習するというステップでしょうか。
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.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.4
- 回答日時:
SQLはちょっと敷居が高いですよね。
自分なら詳細ページを独立した1つのページにして、そのファイル名を検索する仕組みにします。
そして検索テーブルは連想配列で例えば
0001.htm-> 20k-,apart,5min...
みたいにして検索情報を一つの文字列にしてしまいます。
検索画面でPOSTしてきたデータで連想配列の値を正規表現で比べてマッチしたキーが探している物件のHTML
複数だすならマッチしたキーを別の一次元配列に溜めておく。
検索ページが硬直的になるけど、一番簡単で早いと思いますよ。
詳細ページはIFRAMEで呼び出せば必要な部分の記述だけでいいし。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- 迷惑メール・スパム gmailの過去のメールを一括削除する方法について 3 2023/04/19 05:27
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- WordPress(ワードプレス) WordPressのサイトにPDFをアップロードした際にGoogleなどの検索結果に出ないでほしい 1 2022/08/03 10:44
- その他(プログラミング・Web制作) パイソンでのプログラミングについて 3 2022/08/11 20:31
- Word(ワード) Wordで作った資料の修正方法 2 2023/06/19 00:51
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- ヤフオク! ヤフオクの検索条件について 2 2023/03/28 16:49
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
file_existsでファイル名の部分...
-
while文について
-
配列をループでたくさん宣言し...
-
phpで、連想配列を普通の配列に...
-
Smartyのテンプレートからjavas...
-
配列を回すとき、最後の要素だ...
-
foreachのなかで次のキーを参照...
-
PHPのカッコ[ ]の使い方について
-
配列一致(要素順番は違うが内容...
-
スカラーのベクトル微分
-
ヒアドキュメントの中のfor文
-
プログラミングのPythonのnoteb...
-
ファイルの書き込みについて教...
-
2次元配列への標準入力
-
foreachで上限回数指定方法また...
-
プルダウンメニューにDBの内容...
-
自動で番号を振りたい
-
一度に複数の値を取得できる乱...
-
smartyでページングするには
-
phpでforeachの中にforeachがあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
file_existsでファイル名の部分...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
PHPのカッコ[ ]の使い方について
-
ネストが深い時のforeachはどう...
-
チェックボックス複数選択 mys...
-
PHPで配列をPOSTデータで送った...
-
phpで、連想配列を普通の配列に...
-
PHP 多次元配列変数のデータ受...
-
postgresql関数をつかったレコ...
-
SQL文の実行結果を変数で受けて...
-
【PHP】配列内のある値以上をカ...
-
プルダウンメニューでCSVデータ...
-
Smartyのテンプレートからjavas...
-
CSVデータのn番目だけの値を取...
-
PHP 配列の数をn対nの割合で分...
おすすめ情報