• ベストアンサー

ロリポップでPagerを使うには?

質問させて下さい。 PHP Smartyなどで開発をしている者です。 サーバはロリポップを使っています。 ページング機能を使いたくて、PEARのPagerを利用したいと思っています。 いくつか参考サイトを見たりしましたが、情報が古かったり簡略化されてたりと、いまいち分かりません。 元々PHPでページング機能を実装していたのですが、Smartyでページング機能を実装するのが困難だったので、PEARのPagerがよいのかな?という事で試行錯誤しています。 是非とも教えて下さい。

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

質問の要旨は何でしょうか?LolipopサーバではPagerは特に問題なく使えるハズです。 require_once 'Pager.php'; だけ書けば、$pager =& Pager::factory($options); でPagerオブジェクトを生成できます($optionsは配列)。 http://www.phpbook.jp/pear/pear_pager/

tetujapan
質問者

お礼

ありがとうございました。

tetujapan
質問者

補足

分かりにくくてすみません。 LolipopサーバにはPEARが最初からインストールされているのですよね? 任意の場所にPagerフォルダを用意して、ダウンロードしたPagerパッケージを丸ごとアップロードすればよいという事でしょうか? いまいち使い方が分かりません。 分かりにくくてすみませんが、教えて下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PEAR PAGERでの大量データ処理についての質問

    PEAR PAGERでの大量データ処理についての質問 お世話になっております。 <実行環境> PHP=Ver5.3.1 , db=db2 , smarty使用 例)50万レコードの名称データからある文字列のデータを抽出して画面表示させるPHPですが、   1画面に表示するデータ件数=20件とした場合、抽出されたデータが1万件あった場合、   ページ数=10000/20=500ページになります。 現在、上記例の場合はデータ抽出とページ作成に長時間掛かり、使用に耐えません。 そこで時短策についてご存知の方、よろしくお願いいたします。 <基本的な質問> PEAR PAGERは対象データとして抽出された結果データ(配列)に対してのページング機能と 理解してよろしいですか? <問題解決策の質問> 小生が解決策として考えたのは下記2点なのですが、 1)抽出データのSELECT時にFETCH FIRST 500 の様に、表示対象データ件数を固定してしまい、   それ以上は新たに検索キーワードを入力し直す方法・・・これだとページは25ページで終了。 2)抽出データのSELECT時にBETWEEN m AND n の様にm件目からn件分と定義して置き、   PHPで”次頁”、”前頁”を押した時にPEAR PAGERを抜出してSELECT文を設定し直して   PEAR PAGERを再実行させる方法・・・これだとPAGERはいらない? ---------------------------------- もっと簡単でスマートな方法ご存知ありませんか? PEAR PAGERの有効な使用方法をご教授頂けると幸いです。 *質問文が解り辛かったらお詫びいたします。

    • 締切済み
    • PHP
  • PHP PEARのPagerをSmartyで使う

    初めまして、PEARのPagerを勉強していたのですが、Smartyで実装したいと思い試行錯誤していたらうまく表示されなくて困っています。 【PHP】 //PEARの読み込み、Smartyクラスの読み込み、MySQLクラスの読み込みは省略 //上記は正常に動作しています。 // テーブルの行数を数えます $sql = "SELECT COUNT(*) AS cnt FROM table_name;"; //レコード開始位置指定 $start = 0; //最大レコード数を指定 $limit = 10; // データを取り出すSQLを実行します。 $sql = "select * from table_name ORDER BY no DESC LIMIT $start, $limit"; $result = mysql_query($sql); while($rows = mysql_fetch_array($result)){ $res_data[]=array("title"=>$row['title'],"name"=>$row["name"],"no"=>$row["no"]); } //Pagerのパラメータを指定 $params = array( "itemData" => $res_data, "totalItems" => $limit, "perPage" => 6, "delta" =>5, "mode" =>"Jumping" ); //パラメータの連想配列を受け取る $pager =& Pager::factory($params); // ページデータの割り当て処理 foreach($pager->getPageData() as $item){ $res_data_page[] = $item; } //戻る/次/最初/最後のリンクとページリンクを返す $link = $pager -> getLinks(); //現在のページ番号を返す $currentPageID = $pager -> getCurrentPageID(); // テンプレート用に変数を設定 $smarty->assign('data', $res_data_page); $smarty->assign('pageNavi', $link['all']); $smarty->assign('currentPage', $currentPageID); ■tpl <table border="1"> <tr> <th>名前</th> <th>NO</th> <th>タイトル</th> </tr> {foreach from=$data item=i} <tr> <td>{$i.name}</td> <td>{$i.no}</td> <td>{$i.title}</td> </tr> {/foreach} </table> <p>{$pageNavi}</p> <p>{$currentPage}ページを表示</p> 参考URL http://meerweb.blog7.fc2.com/blog-entry-101.html データベースへの接続は出来ていて、ページャー機能は動いています。 取得しているデータ数もあっているのですが、全部1行目のデータだけ表示されます。 どなたか原因が分かる方いらっしゃいましたら、是非ともご教授ください。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PEAR::Pagerでチェックボックスデータを保持したいです。

    PEAR::Pagerでチェックボックスデータを保持したいです。 CentOS 5.0 PHP 5.1.6 携帯サイトを作っています。 画像を一覧で表示しているページで、各画像に チェックボックスを付けチェックの入った画像を 次のページで表示しています。 登録されている画像が10枚以上ある場合は、 PEAR::Pagerを使ってページングしているのですが、 2ページ目、3ページ目と遷移した場合にチェックボックスの データを保持する方法をご教授願いたいのです。 ページングはaタグでリンクしていますので、POSTの値を 保持する方法はどうしたもんかと・・・。 携帯なのでjavascriptも使えないので大変困っております。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • ロリポップのサーバでのPEARインストールについて

    ロリポップのサーバでPHP5.3でCakePHP2系を運用しています。 CakePHPのvendors内にPEARを入れていますが、 ローカル環境では動くのに、ロリポップ上でPEARがエラーになります。 ロリポップ上のCakePHP2内で、PEARを動かす方法が分かる方いたら教えて下さい。 phpinfo関数でinclude_pathを見ると、 ちゃんとインストールしたフォルダを認識しています。 使いたいモジュールはHTTP_REQUESTなのですが、 Class 'HTTP_Request' not found というエラーが出てしまいます。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • ロリポップのサーバーにPEARライブラリを追加したい

    初めて投稿します。 プログラム始めて3ヶ月未満の初心者です。 PHPを利用して携帯サイトを作ろうと勉強しています。以前Pearをサーバー(ロリポップ)にインストールして利用していますが、ライブラリを追加したい(ライブラリ:Net_IPv4)と思い、 http://サーバーのドメイン/pear/go-pear.php にアクセスしても、 「500 ERROR INTERNAL SERVER ERROR ※CGIもしくはSSIが正しく動作していません」 というエラーが出てしまいます。 以前PEARをインストールしたときは、 1.サーバーに「pear」フォルダを作り(パーミッション:755) 2.「http://pear.php.net/go-pear」にアクセス。表示されたリストをコピーし、go-pear.php という名前で保存。go-pear.php(パーミッション:755) を、FTPで先ほど作成したフォルダー「pear」にアップロード 3.「http://サーバーのドメイン/pear/go-pear.php」にアクセスして、Confguration欄のphp.exe.pathの項目に「user/local/bin/php」と入力 を実行しました。 これで、利用したいPEARライブラリを選んで、インストールした分は今も使えております。 PEARのライブラリをレンタルサーバー(ロリポップ)に追加する方法をご存知の方がいらっしゃいましたら、教えて頂けないでしょうか。 よろしくお願いします。 ※ローカル環境ではコマンドプロンプトを利用して、問題なく「Net_IPv4」ライブラリを追加出来ました。

    • ベストアンサー
    • PHP
  • ロリポップと、phpで自動の返信機能を作りたい。

    レンタルサーバー、ロリポップのロリポプランで、phpとmysqlを使ったwebサービスを作ろうと考えています。 会員登録のシステムで、 仮登録すると、メールアドレスにURL認証の本登録のメールが、 こちらのロリポップのメール機能から返信されると言う風にしたいのです。 sendmailを使ったメールフォームを作成して、件名、本文等の情報を、 ロリポップ側のメールに「送信」と、「受信」は出来ました。 ただ、ロリポップ側のメールアドレス 例:test_hatena123@lolipop.co.jp にメールが外部から送信され、「受信」した際に、 phpが起動され、その外部のメールアドレス宛に、 自動で返信する様な機能を作りたいのですが、どの様にすれば良いか試行錯誤しています。 自動の「返信」機能を作りたいです。 その為にはどうすれば良いでしょうか。 サンプル、ソースコードを教えて頂くと助かります。 よろしくお願い致します。 メールの自動返信機能を

    • ベストアンサー
    • PHP
  • お勧めのレンタルサーバを教えてください

    PHP5(PEAR::DB(1.7.10),PEAR::PAGER) MySQL5 を使い、localhostでDB連動のシステムを開発しています。 PHP5(PEAR::DB(1.7.10),PEAR::PAGER) MySQL5 が初めからインストールされているレンタルサーバを 探しています。 メールは一切いりません。 ご存知の方がおられましたら、よろしくお願いします。 理由: 今、会社で使っているレンタルサーバでは、PEAR::DB(1.7.10),PEAR::PAGER のインストールを自分でしなければなりません。 何度か質問のメールをしたのですが、 「お問い合わせいただいた件ですが、 PEARライブラリの操作、設定、導入方法については弊社サポートの 範囲外となっております。大変恐縮でございますが、お客様にて ご確認頂きます様、お願い申し上げます。」 との事で、どうしていいかわかりません。

    • ベストアンサー
    • PHP
  • PHPエラーコードについて

    このようなエラーの場合どうすればいいのでしょうか?どなたか宜しくお願いいたします。 Warning: main(pager/pager.php) [function.main]: failed to open stream: No such file or directory in /home/○○○○/public_html/server/app/○○○○/○○○○.php on line 10 Fatal error: main() [function.require]: Failed opening required 'pager/pager.php' (include_path='../../pear:../../smarty:.:/usr/local/lib/php') in /home/○○○○/public_html/server/app/○○○○/○○○○.php on line 10

    • 締切済み
    • PHP
  • PHP Pagerで行き詰っています。

    PHP Pagerの使用で、下記2点で行き詰っています。 (1)1ページ内に10件までしか表示させたくないのに、全件表示される (2)DBからの取得データ数をtotalItemsに格納し、それをもとにナビを作成したい ソースは以下です。 どうかご助力いただけますと幸いです。 よろしくお願いいたします。 ------------------------------------------------------------ hogehoge.php ------------------------------------------------------------ <?php require_once("Smarty.class.php"); require_once("../PHP/PEAR/Pager/Pager.php"); $objSmarty=& new Smarty(); $s=mysql_connect("hoge","hoge","hoge") or die("失敗しました"); mysql_select_db("hoge",$s); $sql = "SET NAMES utf8"; $result = mysql_query($sql); $ra=mysql_query("select * from stylenavi_1 where url4 LIKE '/01.php'and url3 like '/syokuji'"); $rb=mysql_query("select * from stylenavi_1 where url3 LIKE '/syokuji'");//この行で取得したデータ数をitemDataに格納したい。 $rc=mysql_query("select * from stylenavi_1 where url1 LIKE '/diethow'"); while ($ra2 = mysql_fetch_array($ra)) { $objSmarty->append('data1',$ra2); } while ($rb2 = mysql_fetch_array($rb)) { $objSmarty->append('data2',$rb2); } while ($rc2 = mysql_fetch_array($rc)) { $objSmarty->append('data3',$rc2); } $itemData = $hogehoge;//どうやって反映させよう・・ $perPage = 10; $params = array( "itemData" => $itemData, "perPage" => $perPage, "delta" =>5, "mode" =>"Jumping" ); $pager =& Pager::factory($params); $link = $pager -> getLinks(); $currentPageID = $pager -> getCurrentPageID(); $objSmarty->template_dir="../templates/"; $objSmarty->compile_dir="../templates_c/"; $objSmarty->assign('pageNavi', $link['all']); $objSmarty->assign('currentPage', $currentPageID); mysql_close($s); $objSmarty->display("itiran_page.tpl"); ?> ------------------------------------------------------------ hoge.tpl ------------------------------------------------------------ {section name=diet loop=$data2} //ここでPerPageで指定した数だけ繰り返したいのに全件表示される ◇<a href="{$data2[diet].url}">{$data2[diet].title}</a><br /> ダイエットの手軽さ:{$data2[diet].tegarusa}<br /> 危険性:{$data2[diet].kikensei} <br /><br /> {/section}

    • 締切済み
    • PHP
  • ロリポップでSmartyのtpl読み込みエラー

    下記のコードを実行すると、  Smarty error: unable to read resource: "template1.tpl"  というエラーが出てしまいます。 $smarty->template_dirで指定したディレクトリ名の中に  "template1.tpl"というファイルは配置してあります。  原因などわかればおしえていただけないでしょうか。 index.php <?php require_once("Smarty.class.php"); $smarty = new Smarty; $smarty->template_dir = './templates/'; $smarty->compile_dir = './templates_c/'; $smarty->config_dir = './configs/'; $smarty->cache_dir = './cache/'; $smarty->display("template1.tpl"); ?> 【サーバ】  ロリポップです。 【その他】 index.phpをホームディレクトリ配下におくとエラーは消えます。 【ディレクトリ構成】 modules/index.php と templates/template1.tpl をがあり、 index.php から template1.tpl を読み込もうとしています。  ・modules →index.php ・templates →template1.tpl

    • ベストアンサー
    • PHP