• 締切済み

PHP+MysqlにPagerをいれたのですが。

karumakarumaの回答

回答No.1

79行目の"["がおかしいと言ってますね。 print($scope['0']."件目から".['1']."件目を表示"); となってるので print($scope['0']."件目から".$scope['1']."件目を表示"); と"$scope"と入れるだけでエラーは出なくなると思います。

noname#194780
質問者

補足

記入していただいた通り、 print($scope['0']."件目から".$scope['1']."件目を表示"); に変更した所、 Warning: Invalid argument supplied for foreach() in /usr/share/php/Pager/Common.php on line 803 1件中 Fatal error: Call to undefined method Pager_Jumping::getOffsetByPadeId() in /var/www/html/user-site/all-pager.php on line 78 このように出てきました。 これは、何を修正すればいいのでしょうか。

関連するQ&A

  • PHP+Mysql+Pager続きがわかりません

    PHP+Mysql にPagerをいれたのですが、真っ白のままです。 PHP+Mysql にPagerをいれたのですが、真っ白のままです。 問題のページは下です。 http://nakadora-net.com/user-site/pager-all.php ソースは文字数オーバーになったので、下のURLにまとめました。 http://nakadora-net.com/user-site/pager-all.txt ページを表示させるには、どこを変えればいいのでしょうか。

    • ベストアンサー
    • 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
  • phpのpagerについて

    参考サイト http://enjoyjob.blog116.fc2.com/blog-entry-291.html にてpagerを作っているのですが、うまくできません。 DBに接続して、DBないのレコード数を表示させたいのですが、DBを読みこんでからがわかりません。 サンプルコードは以下です。 $bbs_query = mysql_query("SELECT COUNT(*) FROM `bbs` limit 15"); //全アイテム数 $totalItem = $bbs_query; //1ページあたりの上限 $parOnePage = 15; ・ ・ ・ 以下参考サイトの記述をし、表示するページにも http://enjoyjob.blog116.fc2.com/blog-entry-292.htmlにあるものを記入しました。 結果は PREVIOUS 1 NEXT とでるだけでリンクもできずページ数も増えません。 bbsテーブルにはレコード数は30程あります。 お分かりの方がいらっしゃいましたらご教授いただければと思います。 宜しくお願いします。

    • 締切済み
    • PHP
  • php ページャー

    php ページャー機能がうまくいきません。 ご教授お願いいたします。 ページリンク2、3と押しても ページが移動しません。 ずっと一ページ目のままです。 解決方法よろしくお願いいたします。 index.php peger.php 書きソースはpeger.phpです。 index.htmlとのソースの違いは if(preg_match('/^[1-9][0-9]*$/', $_GET['page']) ){ $page = (int)$_GET['page']; }else{ $page = 1; } のプログラムががindex.phpにはないだけです。 <!DOCTYPE html> <head> <meta charset="UTF-8"> <title>検索</title> </head> <body> <?php if(preg_match('/^[1-9][0-9]*$/', $_GET['page']) ){ $page = (int)$_GET['page']; }else{ $page = 1; } $page = 1; $limit = 2; $offset = $limit * ($page - 1); $dsn='mysql:dbname=****;host=****'; $user='*****'; $password='*****'; $dbh=new PDO($dsn,$user,$password); $dbh->query('SET NAMES utf8'); $sql='SELECT count(*) FROM `mst_product`'; $stmt=$dbh->prepare($sql); $stmt->execute(); $db=null; $total=$stmt->fetchColumn(); $lastpage= ceil($total/$limit); $sql = 'SELECT * FROM mst_product ORDER BY code DESC LIMIT '.$limit.' OFFSET '.$offset.' ' ; $stmt = $dbh->prepare($sql); $stmt->execute(); $db = null; while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ echo $row['name']; echo'</br>'; echo $row['price']; } echo '<ul class="pager">'; ?> <?php if($page > 1){?> <li><a href="pager.php?page=<?php echo $page-1; ?>"> << </a></li> <?php } for($i = $page; $page-2 < $i && $i <= $page+4 && $i <= $lastpage; $i++){ ?> <?php if($i == $page){ ?> <li><a href="kensaku_pager.php?page=<?php echo $i; ?>"><?php echo '<font color="#FF4DC4">'.$i.'</font></a></li>'; }else{?> <li><a href="pager.php?page=<?php echo $i; ?>"><?php echo $i.'</a>'; ?> <?php echo '</li>'; } } if($page < $lastpage){ ?> <li><a href="pager.php?page=<?php echo $page+1; ?>"> >> </a></li> <?php } ?> </ul> </body> </html>

    • ベストアンサー
    • PHP
  • MYSQL PHPのページ分割表示について教えてください。

    MYSQLとPHPで書籍のデーターベースを構築中ですが、ページの分割表示をさせたくて、色々検索していたら「PEAR::Package::Pager を使わずphpでページング処理ができるpager()関数」というもをみつけました。 がっ! 組み込み方が、わからない。 賢者の知恵を拝借できれば、幸いです。 ソースは、こちらのを利用させていただいております。 http://www.daito.ac.jp/~ikeuchi/webdb/webdb_3.html これに、下記のところにある関数を組み込みたいのですが http://ryouchi.seesaa.net/article/45846102.html よろしく、お願いします。

  • MySQLからのデータを「Pager」を使って分割表示する

    はじめまして。PHPとMySQLとPEARのPagerを使った質問なのですが、過去レス等を参考にしながらやってみました。 「form.html」から社員の年齢の最低と最高を入力し、それを「search.php」にgetで渡し、ヒットしたデータの名前と年齢を表示したいのです。 データが多いのでページを1ページに何件かずつ分けて表示したいのですが、「Pager」を使ったやりかたを以下のように書いてみました。 どうしても「Pager」を使ってやってみたいのですが、うまくいきません。 MySQL には(id ,name ,age の3カラムのデータが格納されています) form.html---------------------------------- <html> <head> <title>社員の名前と年齢について</title> </head> <body> <form method="get" action="search.php"> <input type="text" name="age_min"> 歳 ~ <input type="text" name="age_max" > 歳 <input type="submit" name="submit" value="検索"> </form> </body> </html> ---------------------------------------------- search.php--------------------------------------- <html> <head> <title>社員の名前と年齢について</title> </head> <body> <? //ここから http://oshiete1.goo.ne.jp/qa4155006.htmlを参考 $search=""; $age_min=$_REQUEST["age_min"]; $age_max=$_REQUEST["age_max"]; if(is_numeric($age_min) and is_numeric($age_max)) $search.=($search==""?"":"&")."age_min={$age_min}&age_max={$age_max}"; //ここまで http://oshiete1.goo.ne.jp/qa4155006.htmlを参考 //DB接続 require_once ('Pager/Pager.php'); $conn = mysql_connect ("サーバー名", "ユーザー名", "パスワード") or die ('接続できませんでした'); mysql_select_db ("search",$conn); //MySQLのクライアントの文字コードをsjisに設定 mysql_query("SET NAMES sjis") or die("can not SET NAMES sjis"); $sql_1= mysql_query("select count(*) as max from search where age between '$age_min' and '$age_max'"); $row1 = mysql_fetch_array($sql_1); if($row1[max] == 0) $message = "該当者なし"; else $message = $row1["max"] . "人ヒット"; $row1_max = $row1["max"]; echo "検索結果<br>"; echo "$message"; $sql_2= mysql_query("select name,age from search where age between '$age_min' and '$age_max'"); $row2 = mysql_fetch_array($sql_2); //Pagerの導入 $params = array( 'itemData' => $row2, 'mode' => 'Jumping', 'perPage' => 10, 'delta' => 6, 'totalItems' => $row1_max ); //Pagerのインスタンスを生成 $pager = & Pager::factory($params); $links = $pager->getLinks(); $data = $pager->getPageData(); $c_pager = $pager->getCurrentPageID(); $e_pager= $pager->numPages(); print $data["all"]; print $links["all"]; ?> </body> </html> ------------------------------------------------------------------- ページ分割しなければ、「Pager」を使わずに、上のデータ表示箇所を while($row2 = mysql_fetch_array($sql_2)){ echo "<table border='1' cellpadding='0' cellspacing='0'>"; echo "<tr>"; echo "<td>".$row2["name"]."</td>"; echo "<td>".$row2['age']."</td>"; echo "</tr>"; echo "</table>"; } みたいな感じで書き換えればうまく表示されるのですが、「Pager」を使う場合は $data = $pager->getPageData(); でページのデータを返してくれると書いてあったもので、使ってみました。おそらく、 (1)'itemData' => $row2, (2)$data = $pager->getPageData(); (3)print $data["all"]; の3箇所あたりがおかしいかと思っております。どうかよろしくお願いします。

    • 締切済み
    • PHP
  • Apache使ってphpでMySQLへアクセスが…

    Macを使っているものです. 最近phpでMySQLにアクセスしようということに取り組んでいます. しかし,apacheがよくないのかmysqlがよくないのか適切に動作してくれません. よくわからないので,手順を書いて問題を言及してみました... 何がいけないのでしょうか... --------- Apacheはデフォルトで入ってるはず・・・ apacheの設定ファイルhttpd.confのポートを8080に設定(これで競合はないはず・・・) ↓ [1]URLにhttp://localhost:8080/とうつと,Apacheのテストページではなく,It works!と出る ↓ とりあえず,Siteフォルダにphpファイルを置き,hello worldを表示.できた(じゃあ,動いてるのかな?) ↓ コマンドラインから「apachectl start」を実行「Already loaded」 じゃあ,動いてるっぽい ↓ じゃあ,DBアクセス用のphpを動作させよう!MySQL導入 ↓ 設定ファイルphp.iniのパスがおかしかったので,mysql.default_socket=/tmp/mysql.sockに変更 実際にcdで移動し,ファイルがmysql.sockがあることを確認 ↓ よーし,実行だ!http://localhost:8080/db_access.php→Not Found あるぇ?なんでだ? ↓ http://(ip直打ち):8080/db_access.php→表示! でも,ソースコード内に以下の記述をしている(簡略化して書きます) ********** $url="localhost" $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); <html>接続ID:<?=$link ?></html> ********** なのに,結果は :::::::::: 接続ID: :::::::::: という風になにも表示されない(・ω・` 結果が「MySQLへの接続に失敗しました。」なら,そもそもMySQLに接続できてないんだろうけど,結果だけがかえってこないのはなんでだろう. ちなみに,$urlをip直打ちにしたらブラウザに怒られた.そりゃそうだよな. --------- という流れで今に至ります. おそらく[1]の時点が問題かと自分では思うのですが,原因がわかりません. ご助言おねがいいたします.

    • 締切済み
    • PHP
  • PHPからMySQL5にアクセスできない

    phpからMySQL5にアクセスできません。 以下のソースを実行すると、エラーが表示されます。 ■=== phpのソース=========================================== <html> <?php if( !$mysql = mysql_connect("localhost","test_user","test_password") ){ print "接続失敗<br>"; exit(); } ?> </html> ============================================== ■=== エラー ================================= Fatal error: Call to undefined function mysql_connect() in d:\HTTPRoot\temp\test.php on line 3 ============================================== ■環境 ・PHP 5.1.6 ( Windows Binaries(PHP 5.1.6 zip package )をダウンロードし、c:\PHPへ解凍 ) ・AnHTTPd1.42k ・Windows2000Professional sp4 ・MySQL 5.0.19 ■状況 ・PHPとAnHTTPdは動作しています。 以下、<? phpinfo(); ?> の結果で、MySQLの部分です。  Client API library version 5.0.22  Client API header version 5.0.22  MYSQLI_SOCKET /tmp/mysql.sock ・MySQLにはログインでき、DBやテーブルの作成もできます。 コマンドラインから、以下のコマンドでログインできます。 c:\>mysql -utest_user -ptest_password ・このサイトを参考に、php.iniなど設定しています。 http://homepage1.nifty.com/yito/anhttpd/faq/php5.html   php.iniのこの行もコメントアウトを外しています。    extension=php_mysql.dll 以上、宜しくお願いします。

    • ベストアンサー
    • PHP
  • php→mysqlへの接続が出来ない(初心者)

    レンタルサーバーのMySQLへPHPから接続したいのですが、うまくいきません。 ソースコードは以下の通りで、 ========ソースコード================== <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> (↑head内記述) <?php $my_con = mysql_connect("mysql5.heteml.jp","User","Pass"); if ($my_con == false) { die("失敗"); }else{ echo "成功!!"; } ?> ================================ 結果、以下のエラー表示が出ます。 =========エラー文=================== Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'mysql5.heteml.jp' (10060) in C:\xampp\htdocs\wakuphp\test-connect.php on line 9 失敗 ================================ ちなみに、ソースコードの9行目は 『$my_con = mysql_connect("mysql5.heteml.jp","User","Pass");』で、 phpMyAdmin上で言語設定は"Japanese(ja-euc)"です。 原因が解らず困っております。有識者の方いらっしゃいましたら宜しくお願いします!

    • ベストアンサー
    • PHP
  • Pagerを使って、mysqlからデータを取り出して、分割表示を行ない

    Pagerを使って、mysqlからデータを取り出して、分割表示を行ないたい。 <?php require_once("MYDB.php"); $conn = db_connect(); //検索 start// $search_key=""; if(isset($_POST['search_key'])) $search_key = addslashes($_POST['search_key']); $sql=<<<EOS SELECT * FROM inscription WHERE site like '%$search_key%' OR url like '%$search_key%' OR fix like '%$search_key%' OR ex like '%$search_key%' EOS; if(preg_match("/Windows/",$_ENV["OS"])){ $sql=mb_convert_encoding($sql, "SJIS","EUC-JP"); } $result=$conn->query($sql); if(DB::isError($result)){ die($result->getMessage()); } $count = $result->numRows(); //検索 end// //☆☆ここにPearのPager☆☆導入// if($count>0){ ?> <table border="1" cellspacing="0" cellpadding="10"> <tr> <td width="530"><font size="2px">サイト名</font></td> </tr> <?php while($rs=$result->fetchRow( DB_FETCHMODE_ASSOC )){ if(preg_match("/Windows/", $_ENV["OS"])){ $rs['site']=mb_convert_encoding($rs['site'],"EUC-JP","SJIS"); $rs['url']=mb_convert_encoding($rs['url'],"EUC-JP","SJIS"); $rs['ex']=mb_convert_encoding($rs['ex'],"EUC-JP","SJIS"); $rs['fix']=mb_convert_encoding($rs['fix'],"EUC-JP","SJIS"); } ?> <tr><td width="530"><font size="2px"><a href="<?php echo $rs['url']?>" target="blank"><?php echo $rs['site']?></a></font></td></tr> <?php } ?> </table> <?php } $result->free(); $conn->disconnect(); ?> --------------------------------------------------------- 上のプログラムは、リスト表示するデータです。 上の☆☆ここにPearのPager導入☆☆の所に以下の内容を入れて、1ページ20行程度のリストとして分割表示を行ないたいと思っています。 <?php //Pager start// require_once("Pager/Pager.php"); $options = array( "totalItems" => 265, "delta" => 10, "perPage" => 20, ); $pager =& Pager::factory($options); $navi = $pager -> getLinks(); print($navi["all"]); $currentPageID = $pager -> getCurrentPageID(); //Pager end // ?> ただ単に導入しただけでは、 「1 2 3 4 5 6 7 8 9 10 Next >> 」と表示されるだけです。 どうすれば、分割表示できるようになるのでしょうか。 PHPに関しては、まったく知識がなく1,2冊程度の本を買って勉強した程度のレベルです。 正しい書き方等があればよろしくお願いいたします。

    • 締切済み
    • PHP