phpで価格比較サイトやオークションのようなプログラムを作成する方法

このQ&Aのポイント
  • プログラム初心者の方が、phpを使用して価格比較サイトやオークションのようなプログラムを作成する方法について教えてください。
  • 具体的な流れとしては、ラジオボタンを作成し、値を送りPHP側で処理を行い、任意の画像を表示させるという簡単なプログラムを作成することから始めることができます。さらに、チェックボックスを使用して撮影日順や季節ごとのフィルタリング機能を追加することも可能です。
  • 以上の手順を踏むことで、自分が作りたいプログラムを組むことができます。漠然とした部分ではなく、一つ一つの処理について詳しく説明されると学習しやすいです。
回答を見る
  • ベストアンサー

phpで目的のプログラムを作る流れを教えてほしい

すみません。プログラム初心者です。 現在自分のウェブサイトを持っているのですが、そこには自分で撮った写真(画像をテーブルで囲い、コメント付きのもの)が500枚くらい大量に掲載しています。 それを価格比較サイトやオークションのように訪問者が任意で並び替えるPHPプログラムを組みたいと思っています。(私の場合は写真を撮った日付順、撮影場所順など・・) そこで今週初め頃からPHPプログラムの解説サイトをひと通り目を通してみて、実際ローカル環境で作ったラジオボタンから値を送りPHP側で処理して任意の画像を表示させるなど簡単なプログラムを作ってみたのですが、いざ自分が作りたいプログラムを組みたいと思っても参考になるプログラムが無いので手が付けられません。 もしよければプログラムを組む流れを教えてもらえないでしょうか。 ラジオボタンを作る→値を送る→php側でこういった処理→次にこういった物を作り値を送る→こういった処理・・・のように教えていただけると助かります。(あまり漠然としたものではなく、一つ一つこういった 処理と書いていただけると勉強しやすいです) 自分の作りたいものは以下です。(実際はチェックボックスをもっと作り、フィルタリングを強くしたいと思っています) 1、撮影した写真(テーブルで囲ったコメント付き)を外部のメモ帳などにテーブルのhtmlごと書いて保存しておき、撮影日や投稿日、撮影季節の情報を入れておく 2、それを撮影日順、掲載順か選べるチェックボックスを作る 3,「2」に加えて春、夏、秋、冬のチェックボックスを作る 4,例えば「春」「夏」のチェックボックスを選択して、同時に「撮影日順」のチェックボックスを選択すると、春と夏の写真が撮影日順で表示される あと大変申し訳ありませんが、「プログラムはあなたにはまだ無理だ」「そんなに簡単にプログラムは組めない」など批判やお叱りの回答はご遠慮してください。

  • PHP
  • 回答数5
  • ありがとう数2

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

  • ベストアンサー
noname#138894
noname#138894
回答No.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で表示データ格納用配列をループさせ、データ中のファイル名を使ってファイルの読み込みと出力を行う *上記の流れはこれ以上細かく書くとソースを書く方が速い程度の粒度です。

dorudora
質問者

お礼

詳しくご回答いただきましてありがとうございます。非常に分かりやすく、なんとかなりそうな気がしてきました。特に並び替えの配列の部分で悩んでいたのですが、一度"fgetcsv を調べてみます。

その他の回答 (4)

  • k_kota
  • ベストアンサー率19% (434/2186)
回答No.4

まず、1で言ってる形式のHTMLの要素となるファイルを先に作ってください。 次にデータテーブルを作ってください。 ソート対象となる値をできれば整数にしておくとやりやすいです。 季節も数字に割り振ると良いですね。 んで、配列に入れます。 連想記憶を使ってlist[1][kisetsu]とかやると良いかもしれません。 一番目がレコードの通し番号で2番目が各項目です。 個人的にはリストはカンマ区切りで作って適当な関数でも作って読み込ませるほうがいいと思います。それ用の関数もあったかも。 httpリクエストを投げる部分では、ラジオボタンなどに応じてPOSTの属性を適当に変えるような作りを導入して下さい。 んで、それに応じてレコードを選んで表示するPHPを別組すればよいでしょう。 リストをなめてって条件にハマれば出力という感じで行けば選択は簡単です。 ソートは結構めんどくさいことになりますけど、500なら愚直に行っても大丈夫でしょう。 なので、作るものは ・各写真表示用のhtmlの断片 ・それらの写真の属性情報の入ったリスト ・選択に使うパラメータを投げられるリンク ・受けたパラメータに基づいて属性情報で表示するファイルを選択する部分 くらいでしょうかね。 基本的にはある程度自分でやって、分からないところを聞くと言う流れにしないと終わらないと思います。

dorudora
質問者

お礼

ご回答ありがとうございます。流れはなんとなく分かりました。並び替えをどうするのかなんですが他の方が言っているようにデータベースを作った方が良い気がしてきました。とりあえずやれるだけやってみます・・・。

  • gtx456gtx
  • ベストアンサー率18% (194/1035)
回答No.3

理解力不足でご質問のシステムが浮かばないのですが・・・ >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)
回答No.2

>>いざ自分が作りたいプログラムを組みたいと思っても参考になるプログラムが無いので手が付けられません。 あるレベルまでプログラムを理解していてい、ピンポイントでの疑問点解決には、ネットで探すのは有効です。 でも、ほとんどゼロからの学習となる場合、ネットで探すのもいいですが、まずは書籍を購入されて勉強されることが良いといろんなところでいわれています。 また、サイトを探して参考となるプログラムが見つからないことは多いです。 こういうときは、大きな書店をいくつかハシゴして、目的の情報が掲載された書籍を探されればいいと思います。 私もサイトを探して参考プログラムが得られなかったことがありましたが、書店で探すことで参考になる事例の掲載された本を見つけました。(その本の定価は1万円近いものでしたが・・・) 「逆引き○○事例集」「逆引きハンドブック○○言語」なんてのはわりと有用です。ただ、これは辞書に相当します。辞書が使えるレベルになるための教科書となる書籍は別途必要になりますね。 私も仕事で知らない言語を使うことになったことは何度もありますが、ケチってネットだけの情報に頼っていたら全く進まず、書籍を購入したら、なんとかなったということが多いですよ。 >>もしよければプログラムを組む流れを教えてもらえないでしょうか。 1)作りたいプログラムの仕様(動作)の概要を決める。 2)実現可能なプログラム言語の選択。 3)参考になりそうなプログラムを探す。 4)どこをどのくらい修正すればいいか確認する。 5)すこしずつ求める機能を追加し、1つ1つ動作確認しながら機能を増やす。 なお、4)や5)の段階は、行きつ戻りつしながら参考プログラムの理解度を深めていくことになると思います。 この段階で、「あれ?知らない命令があるなあ。・・・理解するのに一週間かかった!」ということが何度もあると思いますが、まあプログラムを学ぶっていうのはそんなものだと思っていますし、質問者さんの場合、いくつも学ばないといけないことがあります。ここで説明できる量ではとうていありません。 いずれにしろ、経験のない言語のプログラムをほぼゼロから作るのは大変ですので、まずは3)の解決をめざして書店に行くのが良いと思います。

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.1

jQueryのテーブルをソート可能にするプラグインでも探した方が 幸せになれる気がします。

関連するQ&A

  • 実際のphpの運用について

    すいません。今htmlで書いただけのサイトを持っているのですが、 (今使っているさくらサーバーのレンタルサーバーでphpは使えます) 今度フォームを作り、phpで処理して出力するプログラムを作りました。 内容は自分で取った写真を日付順や季節順で並び替えるphpです。 (チェックボックスなどで選択し、画像を並び替えるプログラムです) 私は、phpは初めてで、今手元にあるのは test.html・・フォームなどを設置した通常のwebsitです。 test2.php・・フォームで送られた値を処理して結果を出力するプログラムです。 この二つをとりあえず、フリーソフトのffftpでアップしてみた所、上手く動きました。 たださくらのレンタルサーバーで「php.ini 設定ファイル編集」という項目があるのですが、これは 何もしなくて良いのでしょうか? 白紙の記述ページみたいなものなのですが・・。 とりあえずphpを動かすだけならphpのファイルごとアップロードしてしまえば良いものなのでしょうか?

    • ベストアンサー
    • PHP
  • phpとhtmlについて分からない部分があります

    すいません、初めてphpを勉強していまして、 簡単な動作をするphpを試したりしているのですが、実際のhtmlと合わせて使う上で 根本的に分からない事があります。 現在xamppを使ってローカルでphpを作動させています。(全て初心者サイトに書いてある通りに しました) そこに test.phpと test2.phpを2つ用意し、test.phpにラジオボタンなどを作って、formから値を飛ばして test2.phpに処理(選択したラジオボタンによって写真などを並び替えて表示するプログラム)するようにしました。 とりあえず動作自体は問題なく終わり、任意の順番どおり写真が並び替えられました。 ここで質問なのですが私はhtmlの中にラジオボタンを作り、値をphpに送って、結果を再度 htmlに表示させたいのですが、どうしたら良いのでしょうか。 現在ですとボタンを押すとブラウザのアドレスバーが以下のよう変わるので、ページが飛ばされているように思います。 http://localhost/test.php ↓ http://localhost/test2.php 私が行いたいのは (1)htmlのサイトにラジオボタンを置く ↓ (2)別のphpファイルへ値を飛ばして任意の処理 ↓ (3)処理結果を再度htmlに表示する 私はhtmlにphpを埋め込む形ではなく、あくまで別ファイルで処理をして結果を戻したいのですが (3)を行う場合htmlに「処理の結果をココに表示する」というプログラムが 必要ですよね? このあたりのプログラムの流れが分かりません。初心者サイトを見ても具体的な部分が見つかりません。(プログラム自体初心者で、またローカル環境しかないため、このやり方であっているのか どうかさえも分かりません) どなたか詳しいかたいましたら教えてもらえませんか?

    • ベストアンサー
    • PHP
  • php、並び替え、サーバーの負担などについて

    すいません。php初心者なのですが、ある写真とコメントを任意の順番で並び替えができるような プログラムを作りました。 チェックボックスやラジオボタンで新着順、季節順、古い順、お気に入り順・・などで並び替えができるサイトで、一ページあたり200枚表示するので全部で25ページです。(写真自体が5000ほどありますので) 初めてのプログラミングでどのように組めばよいのかわからなかったのですが、 div~/divで囲んだ中に写真と説明コメントを入れ(htmlで記述)、それをphpファイルとして保存。これを写真の数だけ作り、phpで並び替えて、phpで表示。 (つまりphpファイルが5000個できあがります) とりあえず動作自体は自分の思ったとおり動いたのですが、 例えば、20人くらいが同時に並び替えをして、表示した場合、サイトが重くなったりしますでしょうか? 気になるのが5000個もあるphpファイルでして、phpで呼び出す場合、phpファイルが最も負担が少ないと聞きましたのでそのようにしました(最初はメモ帳に記載していましたが呼び出す際に遅くなると他の人い言われました) 現在100個ほどphpファイルを作りましたが、相当労力が必要でして、このまま続けても重くなって 使い物にならないなら困るので質問しました。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPのオープン処理でテキストファイルから読み込ん

    PHPのオープン処理でテキストファイルから読み込んだ値をリストボックスにセットしたいです。どこかにサンプルになるプログラムはありますか?

  • PHPでコンバートプログラムを作る方法について

    いつも皆様にはお世話になっております。 タイトルにございます、PHPでのコンバートプログラム作成について御教示願います。 ■現行の環境 PHP5 MySQL5 root権限のあるサーバ ■プログラムの概要 保管されているTSVファイル内の数ヶ所の値を変更するPHPプログラムを作成したい。 参照先となるデータには下記の2つのタイプがある。  (1)DBのテーブルに保管されているデータ(約1万行)  (2)保管されていないデータ(約10個程度) (1)の場合、テーブル・TSVの文字列が同一のデータを検索し、ユニークキーとなる数値へと変換する。 (2)の場合はテーブル以外の参照先を保有し、(1)と同様の操作を行う。 また、実行に際してはcron等で自動化を前提。 上記のような条件・要件を満たすプログラムの作成方法、 または参考となる資料(サイト)がありましたら御教示頂けませんでしょうか。 参考までに私のスキルレベルとしましては、DB+PHPで物品の検索・紹介サイトの構築が可能な程度です。 何卒、よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • PHP フォームについて

    PHP初心者です。HTMLとPHPを使って、アンケートフォームを作っています。 ネットで色々と調べていたのですが、基本の構成がわからないので教えてください。 HTMLとPHPの別々のファイルで構成されているフォームと、HTMLにPHPを書き込みをしてHTMLの1つのファイルで構成しているものなどがありました。どの方法でやるとよいのでしょうか? また、同じ内容でもPHPの書き方が違うような感じがするのですが、PHPには同じ動作でも沢山の書き方があるのでしょうか?ウェブサイトによって書き方が違うので少し混乱しています。 [アンケートフォーム内容] テキスト・複数行のテキスト・メール・ラジオボックス・チェックボックス・添付ファイル(添付ファイルは難しいのであれば、無しにします)のフォームの部品をいれたいです。 [動作] 1、顧客がアンケートフォームの入力 2、入力内容を私のメールに転送する のシンプルな動作です。 また、ラジオボタンやチェックボックスをつけると、PHPの構文が難しくなるのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 複数ダウンロードさせるプログラム。

    複数ダウンロードさせるプログラム。 現在PHPでファイルをダウンロードされるプログラムを作成しているのですが、手詰まりになりましたので教えてください。ダウンロードは圧縮しない方法で考えています。 やりたいことは、 1、チェックボックスでファイルを選択。 2、ファイルを1つずつダウンロード(1つのダウンロードが完了したら次のファイル) です。 ちなみにラジオボタンで1つ選択してダウンロードさせるプログラムはできています。 javascriptを使えば良さそうですが、よくわかりません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • ActionScriptとphpの連携について

    ActionScriptとphpの連携について質問があります ActionScriptで受け取った値をphpに送り、その値をphp(htmlに埋め込み)で表示させたいと考えています。 動作としましては、 ・あらかじめテキストボックスに文字列が入力されている ・ボタンをクリックする ・別ウィンドウが出現(getURLでphpファイルを表示)テキストボックスに入力されていた文字列が表示される ・phpのファイルでラジオボタンで項目を選択し送信ボタンを押す ・MySQLに接続、ActionScriptで受け取った値とラジオボタンで受け取った値をまとめてデータベースに保存 というものにしたいです。 ボタンをクリックするまではすべてFlashで実現させています。 Flash→php→Flashという流れで値を表示させる方法はわかるのですが、Flash→phpで表示させることは可能でしょうか もし可能であれば、どのように実現したらよろしいでしょうか 現在はLoadVarsクラスのLoadVars.sendAndLoad()を使っています ActionScriptは2.0です 至らないところもございますが、素早い回答をお願いいたします

    • ベストアンサー
    • Flash
  • onblurイベント時にPHPファイルを読み込む

    <check.js>--------------------- function check(obj){ document.write('<script type="text/javascript" src="check.php?code=' + obj.value + '"></script>'); } ------------------------------- check.jsを読み込んだページ内のテキストボックスの onblurイベント時にPHPファイルを読み込みたいのですが、 check.jsを上記のように書くとページがcheck.phpの内容で再描画されてしまいます(当たり前ですね) check.phpにはGETにてパラメータを渡し、DBへ接続して値を抽出する処理だけさせて 元のjsファイルに値を戻したいのですがどのように記述すればいいでしょうか。

  • PHP・MYSQLで複数のチェックボックスを使う場合

    いつもお世話になっております。 チェックボックスの値を <input type="checkbox" value="ok" name="check[]"> として配列で渡し、ここで選択された値をforeachで回してvalueがokの場合は対応するカラムにokを挿入しています。 このやり方では、例えばチェックボックスでチェックさせたい項目が100個あった場合はチェック結果を格納するテーブルに ck1 ck2 ck3 ck4 ck5 ck6......ck99 ck100 のように100個カラムを作る必要があります。 100個作るのが面倒・・・というわけでは無く、このやり方で良いのだろうかと疑問に感じてきました。 大量のチェックボックスを処理する場合、他に良いテーブル構造や方法などありましたら教えていただけるとうれしいです。

    • ベストアンサー
    • PHP