• 締切済み

php、並び替え、サーバーの負担などについて

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

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • tracer
  • ベストアンサー率41% (255/621)
回答No.2

壮大な勘違いをされているようです。 通常、そのような仕組みを作るのに、phpファイルは1つで十分です。 phpなどのプログラムの目的は、自動化であり、更新を簡単にすることです。 cinnronさんが例にしたものは、そのどちらとも叶っていません。 たとえば、5000個のphpの中の画像パスが変わった時、再び5000個のphpを編集するのでしょうか? つまり、その例の場合、phpを使う意味がほとんどありません。(並び替えの部分をどうやってるか分かりませんが) 配列、もしくは連想配列をご存知でしょうか。 詳しくは説明しませんが、例えばこんな感じで5000個の要素の配列を作れば、1つのphpで5000個の画像セットが作れます。 ---------------------------------------------------- //画像配列 $path="/iamges/"; $img_array=Array(  Array('path'=>$path.'1jpg','alt'=>'画像の説明1','width'=>500,'height'=>300),  Array('path'=>$path.'2jpg','alt'=>'画像の説明2','width'=>500,'height'=>300),  Array('path'=>$path.'3jpg','alt'=>'画像の説明3','width'=>500,'height'=>300),  ・・・・以下画像数分の要素 ); //画像を呼び出す関数 function getImg($n){  global $img_array;  $img=$img_array[$n];  return "<div><img src='{$img['path']}' alt='{$img['alt']}' width='{$img['width']}' height='{$img['height']}'></div>"; } //画像育成 print getImg(1); //<div><img src='/images/1.jpg' alt='画像の説明1' width='500' height='300'></div>が出力される。 ---------------------------------------------------- 上記のような方法で動きますが、より更新を簡単にするために、画像情報をCSVにしたり、DBに格納したりする場合もあります。5000という枚数ならば、通常はDBを使うケースがほとんどでしょう。もっとも、質問文を見る限り、cinnronさんがDBに手を出すには早いと思うので、まずは、配列について学習されることをおすすめします。 >phpで呼び出す場合、phpファイルが最も負担が少ない DBや配列を使えば必要がなくなりますが、そういう話は聞いたことがないですね。どこのソースですか? 仮にそうだとしても、あまり気にするような差ではない気がします。

関連するQ&A

  • phpでhtmlを取り出すには

    こんにちは。phpを勉強中なのですが質問があります。 phpでhtmlソースを取り出したいのですが、htmlソース(内容はdiv~/divで囲んだソース)はどのように保存すれば良いでしょうか? htmlソースなのですが大量にありまして、そのソースごと並び替えをしてhtmlを表示したいのですが・・。 今自分で作ってみたのは、単純にテキストファイルにhtmlを書いて、phpで並び替え、テキストファイル読み込み表示するという方法なのですが、とりあえずは上手くできたのですが、この方法ですとテキストファイルが大量にできてしまいます。 初心者のサイトではデータはmysqlのデータベースを使う・・とあったので同時にmysqlを少しさわってみたのですが、例えばデータベースの値の所にhtmlのソースを放り込むという事なのでしょうか? 作りたいのはゲームのレビューサイトなのですが可能であれば日付順などボタン一つで並び変えたいのです。(div~/divで囲んだソースごと並び変えたい。div~/divの中には自分のレビューやら画像が入ります) htmlとphpを覚え始めたばかりで、よく分からないのですが通常みなさんはhtmlファイルは何に格納するのでしょうか?

    • ベストアンサー
    • PHP
  • <?php include("xxxxx"); ?>について

    宜しくお願いします。 現在、PHPにて逆アクセスランキングの結果を サイトのTOPページ(index.php)に結果部分のみを表示したいと おもっております。 あるプログラムを使用しているのですが 仕様としてhttp://hogehogehogera.hoge/rank.php が新着となっています。 in数順に表示したいのですが、上記PHPの新着順は http://hogehogehogera.hoge/rank.php?form=new となっております。 index.phpに <?php include("rank.php?form=new"); ?> と書いても動かなかったのですが、上記のように結果を新着順に 表示する為に<?php includeを別の指定方法ですれば動くのでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PerlとPHPのサーバーへの負担について

    PerlとPHPでファイル内容を計算して表示する場合、 どちらの方がサーバーへの負担を軽くし、結果を早く表示することができるのでしょうか? 友達はPHPの方が早いみたいなことを言っていましたが、実際はどうなのでしょう? よろしくお願いします。

    • ベストアンサー
    • Perl
  • PHPファイルに関係あり??コンテンツの一部が消えてしまった…

    お世話になっております。 とても困っております。。 PHPで作成されたお問い合わせフォーム設置用webページの一部が、現在下記のようなソースになっています。 <div id="secright"> <div class="secmenu"> </div> <!-- secmenu end--> <br /><br /><br /> </div> <!-- rightcontent end--> しかし、<!-- secmenu end-->と、</div><!-- rightcontent end-->の間にあったコンテンツ(バナーを並べたもの)が、webで公開しているときはそれらのバナーが表示されていたのに、このPHPファイルをダウンロードして見てみるとソース自体が消えているのです。 PHPに関して知識がございません… こんなことってありうるのでしょうか。今現在web公開されているPHPファイルはアップロードし直してしまったものであるため、バナー群が表示されているwebページ(PHPファイル)のソースを見ることももう出来ません。 なお、現在の、ソースが消えてしまったPHPファイルを修正してバナー群を掲載させたい場合は、このPHPファイルの上記に貼り付けたソース部分を直すだけで直るものなのでしょうか。。。 たぶん分かりづらい質問だと思います。申し訳ございません。なにかアドバイス頂ければと思います。よろしくお願い致します。

  • phpのファイルのファイルの読み込み速度について

    現在、初めてphpプログラムを組んだサイトを作っています。 内容としては自分の撮った写真をコメント付きでアップしているのですが、 場所や季節でその写真を任意で並び替えられるようなウェブサイトを目指しています。 (チェックボタンなどで新着順、おすすめ順など訪問者が任意で並び替えられるphpプログラム) $food["1"]["item0"]="tokyo"; $food["1"]["item1"]="0001.jpg"; $food["1"]["item2"]="20120430"; $food["2"]["item0"]="oosaka"; $food["2"]["item1"]="0002.jpg"; $food["2"]["item2"]="20120815"; それで写真を並び替えるために上記のような配列の塊が200近くあります。( 上記は例です) 今後1000個以上に増える予定ですのでphpファイルに全部記載すると編集しづらいので 上記の配列の部分だけ別にテキストファイルに記載してrequire_once ("test.txt")で 呼び出すことにしました。ここで質問なのですが、保存するファイルはテキストファイルで よかったのでしょうか? 何分初めてで、ググってもその辺のことが詳しく書いてあるサイトもありません。 通常みなさんはどのようなファイル形式で保存するのでしょうか? できる限り軽い方がいいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • リンクの制御と値を渡すには?

    ショッピングカートを作っており商品の並び替えを実装させたく 新着順,価格の安い,価格の高い順でソートさせたく思っております。 基本的にphpとmysqlで行うのですがリンクの制御についてはjsに なるものかと思い方法について悩んでおります。 説明が難しいのですがやりたい事は以下の通りです。 1.デフォルトの並び順の時は並び替えのリンクはクリックできる状態 2.新着順で並び変えた場合、他の並び順になるまで新着順のリンクはクリックできない (他の並び順の場合も同様) 3.新着順であればflg=1、価格の安い順であればflg=2、価格の高い順であればflg=3 のようにphpに任意の値を渡したい この値によりphpで条件を設定しそれぞれのsql文で実行したいと 思っているのですがjsの部分が全くわからずなのですがどのように すればいいものでしょうか? 他の部分ではありますがjqueryを使用しておりこれを利用し簡単に 実装できないものかと探してみたのですが情報が見つかりませんでした。 絶対にjqueryを利用してという事ではないのですがおわかりになる方が いらっしゃいましたら宜しくお願い致します。

  • 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ファイルをincludeしてHTML表示する

    お世話になります。 PHP含めプログラム初心者の者です。 どうか知恵をお貸しください。 現在制作しているHTMLサイトがあります。レイアウトはCSSです。 そのうちのひとつのコンテンツのブログページをサイト内WordPressで更新できるようにしたいと考えています。本来なら全てのページをWordPress化したほうがいいのでしょうが、新たにまたいろいろ記述する時間がないもので、とりあえずはblog.htmlなページのコンテンツ表示領域にWordPressで作ったindex.phpが表示されたらいいなと考えております。 ネットでいろいろ調べた結果、「phpファイルをincludeする」という方法によって、それをhtmlファイルで表示する方法があるようです。そこで質問なのですが、具体的にどのようにソースを記述すればそれは可能になるのでしょうか。 (1).htaccessに「AddType application/x-httpd-php .html」と記述する。 (2)表示したいHTML部分に「include(dirname(__FILE__).'/index.php');」と記述する。 とありましたがそれだけではできませんでした。具体的にそうしればいいか教えていただけないでしょうか。(htmlの拡張子をshtmlにするとかいう情報もありましたが定かではありません。)PHPに関しては本当に初心者な者で、変な質問をしているかもしれませんがどうかよろしくお願い致します。 ※参考にした情報ソースは下記です。 http://www.yusk.org/memo/php-memo/php_include_001.html ※HTMLソースは下記です。 <body> <div id="header"> ~略~ </div> <div id="contens"> <div id="leftmenu"> ~略~ </div> <div id="rightmenu"> <div id="rightbox-inside"> <div id="rightbox-inside-txt"> <p class="title">BLOG</p> <p class="standard"> include(dirname(__FILE__).'/index.php');(←ここにブログを表示させたい) </p> </div> <div style="clear:both;"></div> <div id="rightbox-buttom"> </div> </div> </div> </div> <div id="footer"> ~略~ </div>

    • ベストアンサー
    • PHP
  • リンクがうまく機能しません(php使用)

    はじめまして。 A BC D という作りのホームページを作ろうとしています。 B部分をメニューとして利用し、phpでファイルを読み込んで表示させていと思っています。 「あ」というページのBをクリック→「い」というページへ 「い」というページの作りは E BF G ということをしたいのですが、リンクを張ってもうまく飛びません。 どなたかお知恵を拝借できないでしょうか? htmlとcssとフレームでのサイトを作ったことはあるのですが、プログラム系は初めて触ります。 自力で勉強もしていますが、会社の命令なので追いつきません。 よろしくお願いします。 <body> <div class="wrapper"> <div id="header"> </div> <div id="container"> <div id="cont1"> <?php include_once('../../info.php'); ?> </div> <div id="cont2"> </div> <div id="cont3"> </div> <div id="footer"> </div> </div> </body> infoには <a href="file:///C|/xampp/htdocs/HP/X/XX/XXX.php">XXXへのリンク</a> としています。

    • ベストアンサー
    • PHP
  • データベースとphp

    データベースを使ったアプリケーションを作ろうと思っています。 既に投票をしてあるデータの投票結果を表示するプログラムです。 投票結果の表示ができません。多い順や少ない順のsqlはできていて、あとはphpに反映させて表示するだけなのですが、うまくいきません。 以下、コードです。 query.phpはメインのページです。 プルダウンメニューで「多い順」を選択すると、多い順の投票結果が表示されるようにしたいのですが、選択しても全く動きません。 action="query.php"の部分がいけないのでしょうか? action="max.php"にすると、「多い順」を選択しても、「少ない順」を選択しても、どちらも多い順の結果が出てしまいます。(max.phpは多い順に表示するためのファイル名です。query.phpの後ろにソースコードを張りました。) /*query.phpのソースコード*/ <html> <head><title>Listing All Data</title> <link rel="stylesheet" href="../default.css" type="text/css" /> </head> <script language="javascript"> <!-- function navi(obj) { url = obj.options[obj.selectedIndex].value; if(url != "") { location.href = url; } } //--> </script> <body> <div id="main"> <h1>ご当地グルメ<br/>アプリケーション</h1> <div id="description"> 最近流行りのご当地グルメのランキングを見てみましょう!! </div> <form action="query.php" method="post"> <select name="kekka"> <option value=""selected>---投票結果---</option> <option value="http://localhost/~・・・ここにはディレクトリ名・・・/query/max.php">多い順</option> <option value="http://localhost/~ここにはディレクトリ名・・・/query/min.php">少ない順</option> </select> <input type="submit" value="選択"> </form> </div> </body> </html> /*max.phpのソースコード*/ <?php ini_set('display_errors', 'Off'); date_default_timezone_set('Asia/Tokyo'); ?> <html> <head><title>Listing All Data</title> <link rel="stylesheet" href="../default.css" type="text/css" /> </head> <body> <div id="main"> <h1>ご当地グルメ<br/>アプリケーション</h1> <div id="description"> 投票結果(多い順)です。<br> </div> <?php if(! $db = new PDO("sqlite:sqlite2.db")){ die("DB Connection Failed."); } $sql = "SELECT t.itemname,count(*) FROM teams t,vote v WHERE t.teamid=v.teamid GROUP BY v.teamid ORDER BY count(*) DESC"; $stmt = $db->prepare($sql); $stmt -> execute(); print "投票結果(多い順)"; print "<table border=1>\n"; while($cols = $stmt->fetch(PDO::FETCH_NUM)){ print "<tr><td width='100'>$cols[0]</a></td><td>"; for($i=0;$i<$cols[1];$i++){ print "<font color='FF0000'>*</color>"; } print "<font size='-2'>($cols[1]票)</font></td></tr>"; } print "</table>"; ?> <br> <br> <a href="javascript:location.href = 'query.php';">トップページへ</a> </div> </body> </html>

専門家に質問してみよう