- ベストアンサー
phpで価格比較サイトやオークションのようなプログラムを作成する方法
- プログラム初心者の方が、phpを使用して価格比較サイトやオークションのようなプログラムを作成する方法について教えてください。
- 具体的な流れとしては、ラジオボタンを作成し、値を送りPHP側で処理を行い、任意の画像を表示させるという簡単なプログラムを作成することから始めることができます。さらに、チェックボックスを使用して撮影日順や季節ごとのフィルタリング機能を追加することも可能です。
- 以上の手順を踏むことで、自分が作りたいプログラムを組むことができます。漠然とした部分ではなく、一つ一つの処理について詳しく説明されると学習しやすいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
まず、500件のデータの並び替え、抽出を行うのであれば、 何かしらの方法でデータを整理する必要があります。 (ファイルを一つづつ開いてデータを確認するのでは時間がかかるため) データベースを使うのが理想的ではありますが、 とりあえず完成を目指すものとして、CSV形式でデータを保存するとします。 (CSVファイルについては調べてみてください) また、このCSVデータを作る(+データが増えた場合には更新もする)点に関しては、 内容が完全に別になるので手作業で行うとします。 *既存のHTMLから自動で抽出は結構難しいです。 (HTML作成時に厳密なルールに則って作っていないと不可能に近いです) そのあたりを踏まえた上で、一番簡単そうな季節によるフィルタリングを行う場合の流れはこんな漢字です。これが作れれば、他の条件でのフィルタリングも作れるようになると思います。 ■大まかな流れ 例えばこんなCSVファイルを作ります。 前から順番に ID、ファイル名、季節、撮影年、撮影月、撮影日、掲載年、掲載月、掲載日 1,pic_file_1.html,summer,2011,07,03,2011,06,05 2,pic_file_2.html,spring,2011,07,31,2011,06,07 このファイルをfgetcsv()関数等で読み込むとカンマ区切りで配列にデータを取得することが出来ます。 各行を一つの配列とした、二次元配列にするのがいいかと思います。 ("fgetcsv 使い方" とかで検索してみてください) これをforeach等でループさせて、ループの中でそれぞれのデータの中身を確認し、 表示するという感じでしょうか。 ■処理の流れ(季節でフィルタリングする場合) 1.HTMLでラジオボタンを作る。ラジオボタンのvalueには各季節を英語で指定しておく 2-1.PHPでデータ整理用CSVファイルを二次元配列に読み込む 2-2.PHPで読み込んだデータをループさせ、ループの中で各データ中の季節データ(foreachの中での各データを$rowとすると$row[2])をswitchで判定し、radioボタンからの値と同じ物だけ表示データ格納用配列に保存する 2-3.PHPで表示データ格納用配列をループさせ、データ中のファイル名を使ってファイルの読み込みと出力を行う *上記の流れはこれ以上細かく書くとソースを書く方が速い程度の粒度です。
その他の回答 (4)
- k_kota
- ベストアンサー率19% (434/2186)
まず、1で言ってる形式のHTMLの要素となるファイルを先に作ってください。 次にデータテーブルを作ってください。 ソート対象となる値をできれば整数にしておくとやりやすいです。 季節も数字に割り振ると良いですね。 んで、配列に入れます。 連想記憶を使ってlist[1][kisetsu]とかやると良いかもしれません。 一番目がレコードの通し番号で2番目が各項目です。 個人的にはリストはカンマ区切りで作って適当な関数でも作って読み込ませるほうがいいと思います。それ用の関数もあったかも。 httpリクエストを投げる部分では、ラジオボタンなどに応じてPOSTの属性を適当に変えるような作りを導入して下さい。 んで、それに応じてレコードを選んで表示するPHPを別組すればよいでしょう。 リストをなめてって条件にハマれば出力という感じで行けば選択は簡単です。 ソートは結構めんどくさいことになりますけど、500なら愚直に行っても大丈夫でしょう。 なので、作るものは ・各写真表示用のhtmlの断片 ・それらの写真の属性情報の入ったリスト ・選択に使うパラメータを投げられるリンク ・受けたパラメータに基づいて属性情報で表示するファイルを選択する部分 くらいでしょうかね。 基本的にはある程度自分でやって、分からないところを聞くと言う流れにしないと終わらないと思います。
お礼
ご回答ありがとうございます。流れはなんとなく分かりました。並び替えをどうするのかなんですが他の方が言っているようにデータベースを作った方が良い気がしてきました。とりあえずやれるだけやってみます・・・。
- gtx456gtx
- ベストアンサー率18% (194/1035)
理解力不足でご質問のシステムが浮かばないのですが・・・ >2、それを撮影日順、掲載順か選べるチェックボックスを作る >4,例えば「春」「夏」のチェックボックスを選択して、同時に「撮影日順」のチェックボックスを >選択すると、春と夏の写真が撮影日順で表示される 上記のように表示する情報をソートして表示したいという希望があるならPHP+dbという環境でdbにソート処理を任せると処理が簡単になります。 概念的な表現で申し訳ないですが、下記のような感じで如何ですか? ・PHPで「ページの骨組み」を記述 ・dbで表示するデータを取得 SQL「select * from table where 選択条件 ORDER BY ソートするフィールド」 *ソートするフィールドに「撮影日順、掲載順などを選ぶ」 このようなページにして、ページ処理が必要になるならjquery? JavaScript? 的な処理を追加するとリアルタイムでページ処理をプラグインできます。 ページ内スクロールのjQueryプラグインいろいろ・・・検索すると色々あります。 http://kachibito.net/web-design/scroll-jquery.html
- lv4u
- ベストアンサー率27% (1862/6715)
>>いざ自分が作りたいプログラムを組みたいと思っても参考になるプログラムが無いので手が付けられません。 あるレベルまでプログラムを理解していてい、ピンポイントでの疑問点解決には、ネットで探すのは有効です。 でも、ほとんどゼロからの学習となる場合、ネットで探すのもいいですが、まずは書籍を購入されて勉強されることが良いといろんなところでいわれています。 また、サイトを探して参考となるプログラムが見つからないことは多いです。 こういうときは、大きな書店をいくつかハシゴして、目的の情報が掲載された書籍を探されればいいと思います。 私もサイトを探して参考プログラムが得られなかったことがありましたが、書店で探すことで参考になる事例の掲載された本を見つけました。(その本の定価は1万円近いものでしたが・・・) 「逆引き○○事例集」「逆引きハンドブック○○言語」なんてのはわりと有用です。ただ、これは辞書に相当します。辞書が使えるレベルになるための教科書となる書籍は別途必要になりますね。 私も仕事で知らない言語を使うことになったことは何度もありますが、ケチってネットだけの情報に頼っていたら全く進まず、書籍を購入したら、なんとかなったということが多いですよ。 >>もしよければプログラムを組む流れを教えてもらえないでしょうか。 1)作りたいプログラムの仕様(動作)の概要を決める。 2)実現可能なプログラム言語の選択。 3)参考になりそうなプログラムを探す。 4)どこをどのくらい修正すればいいか確認する。 5)すこしずつ求める機能を追加し、1つ1つ動作確認しながら機能を増やす。 なお、4)や5)の段階は、行きつ戻りつしながら参考プログラムの理解度を深めていくことになると思います。 この段階で、「あれ?知らない命令があるなあ。・・・理解するのに一週間かかった!」ということが何度もあると思いますが、まあプログラムを学ぶっていうのはそんなものだと思っていますし、質問者さんの場合、いくつも学ばないといけないことがあります。ここで説明できる量ではとうていありません。 いずれにしろ、経験のない言語のプログラムをほぼゼロから作るのは大変ですので、まずは3)の解決をめざして書店に行くのが良いと思います。
- kuroizell
- ベストアンサー率55% (95/170)
jQueryのテーブルをソート可能にするプラグインでも探した方が 幸せになれる気がします。
お礼
詳しくご回答いただきましてありがとうございます。非常に分かりやすく、なんとかなりそうな気がしてきました。特に並び替えの配列の部分で悩んでいたのですが、一度"fgetcsv を調べてみます。