質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

4回答

7266閲覧

PHPでページング機能の仕組みを知りたい。

442ky119

総合スコア207

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/05/20 08:55

編集2016/05/27 08:42

題名の通り、PHPでページング機能の仕組みを知りたいです。主にページ番号が表示されるページング機能が知りたいです。
wordpressで実装するためです。
どうすればGoogleの1 2 3 4 5…10 次へ»というように「現在地がどこか」とページ番号が表示されるぺージングが作れますか?
pagingについての知識がないため、実装する方法がわかりません。
下記にあるphpコードはwebで調べたものですが、僕が作成したphpコードのどこに挿入すればいいかわかりません。
またpagingを使う際、sqlは利用するのですか?
僕が作成したphpコードも表示します。
ページング処理はできましたが、<<前へ>><<次へ>>が連続して表示されます。原因を教えてください。

PHP

1 function paging($limit, $page, $disp=5){ 2 //$dispはページ番号の表示数 3 $next = $page+1; 4 $prev = $page-1; 5 6 //ページ番号リンク用 7 $start = ($page-floor($disp/2) > 0) ? ($page-floor($disp/2)) : 1;//始点 8 $end = ($start > 1) ? ($page+floor($disp/2)) : $disp;//終点 9 $start = ($limit < $end)? $start-($end-$limit):$start;//始点再計算 10 11 if($page != 1 ) { 12 print '<a href="?my_page='.$prev.'&my_filter='.$area.'">&laquo; 前へ</a>'; 13 } 14 15 //最初のページへのリンク 16 if($start >= floor($disp/2)){ 17 print '<a href="?my_page=1&my_filter='.$area.'">1</a>'; 18 if($start > floor($disp/2)) print "..."; //ドットの表示 19 } 20 21 22 for($i=$start; $i <= $end ; $i++){//ページリンク表示ループ 23 24 $class = ($page == $i) ? ' class="current"':"";//現在地を表すCSSクラス 25 26 if($i <= $limit && $i > 0 )//1以上最大ページ数以下の場合 27 print '<a href="?my_page='.$i.'&my_filter='.$area.'"'.$class.'>'.$i.'</a>';//ページ番号リンク表示 28 29 } 30 31 //最後のページへのリンク 32 if($limit > $end){ 33 if($limit-1 > $end ) print "..."; //ドットの表示 34 print '<a href="?my_page='.$limit.'&my_filter='.$area.'">'.$limit.'</a>'; 35 } 36 37 if($page < $limit){ 38 print '<a href="?my_page='.$next.'&my_filter='.$area.'">次へ &raquo;</a>'; 39 } 40 41 /*確認用 42 print "<p>current:".$page."<br>"; 43 print "next:".$next."<br>"; 44 print "prev:".$prev."<br>"; 45 print "limit:".$limit."<br>"; 46 print "start:".$start."<br>"; 47 print "end:".$end."</p>";*/ 48 49} 50 51$limit = 10;//最大ページ数 52$page = empty($_GET["my_page"])? 1:$_GET["my_page"];//ページ番号 53 54paging($limit, $page); 55 56

wordpress

1« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »« 前へ次へ »

PHP

1function paging($limit, $page, $disp=5){ 2 //$dispはページ番号の表示数 3 $next = $page+1; 4 $prev = $page-1; 5 6 //ページ番号リンク用 7 $start = ($page-floor($disp/2) > 0) ? ($page-floor($disp/2)) : 1;//始点 8 $end = ($start > 1) ? ($page+floor($disp/2)) : $disp;//終点 9 $start = ($limit < $end)? $start-($end-$limit):$start;//始点再計算 10 11 if($page != 1 ) { 12 print '<a href="?page='.$prev.'">&laquo; 前へ</a>'; 13 } 14 15 //最初のページへのリンク 16 if($start >= floor($disp/2)){ 17 print '<a href="?page=1">1</a>'; 18 if($start > floor($disp/2)) print "..."; //ドットの表示 19 } 20 21 22 for($i=$start; $i <= $end ; $i++){//ページリンク表示ループ 23 24 $class = ($page == $i) ? ' class="current"':"";//現在地を表すCSSクラス 25 26 if($i <= $limit && $i > 0 )//1以上最大ページ数以下の場合 27 print '<a href="?page='.$i.'"'.$class.'>'.$i.'</a>';//ページ番号リンク表示 28 29 } 30 31 //最後のページへのリンク 32 if($limit > $end){ 33 if($limit-1 > $end ) print "..."; //ドットの表示 34 print '<a href="?page='.$limit.'">'.$limit.'</a>'; 35 } 36 37 if($page < $limit){ 38 print '<a href="?page='.$next.'">次へ &raquo;</a>'; 39 } 40 41 /*確認用 42 print "<p>current:".$page."<br>"; 43 print "next:".$next."<br>"; 44 print "prev:".$prev."<br>"; 45 print "limit:".$limit."<br>"; 46 print "start:".$start."<br>"; 47 print "end:".$end."</p>";*/ 48 49} 50 51$limit = 10;//最大ページ数 52$page = empty($_GET["page"])? 1:$_GET["page"];//ページ番号 53 54paging($limit, $page); 55 56

PHP

1<?php 2 if ( isset( $_GET[ 'my_filter' ] ) && preg_match( '![0-9]{5}!', $_GET[ 'my_filter' ] ) ) { 3 $area = $_GET[ 'my_filter' ]; 4 } else { 5 $area = '13'; 6 } 7 if ( isset( $_GET[ 'my_page' ] ) && is_numeric( $_GET[ 'my_page' ] ) ) { 8 9 $my_page = absint( $_GET[ 'my_page' ] ); 10 } else { 11 $my_page = 1; 12 } 13 $id= '私のid'; 14 $item_per_page = 100; 15 $ct = '01'; 16 $start = ( $my_page - 1) * $item_per_page + 1; 17 $url = 'http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=' . $id . '&ac=' . $area .'&gc='. $ct.'&results=' . $item_per_page . '&start=' . $start . '&detail=full'; 18 $xml = simplexml_load_file( $url ); 19 $total_count = $xml->ResultInfo->Total; 20 21 echo '<table class="left">'; 22 echo '<caption>' . $start . '件目から' . $item_per_page . '件 表示中 / 総件数 ' . $total_count . '</caption>'; 23 echo '<style scoped>.paging, table{width:70%;margin:auto;}td{border-bottom:1px solid #ccc;}td{color:#2980b9;}form{text-align:center;padding:2em;} 24 .page-link{padding:0em;margin:.2em;display:inline-block;width:3em;border:1px solid #ccc;word-wrap:normal;}h2{text-align:center;margin:1em 0;}</style>'; 25 26 $html = ' <tr><th>店舗名</th><th>読み</th><th>電話番号</th><th>住所</th><th>路線</th><th>最寄駅</th><th>PCUrl</th></tr> 27 <tr><td>%1$s</td><td>%2$s</td><td><a href=tel:\"%3$s\"></a></td><td>%4$s</td><td>%5$s</td><td>%6$s</td><td><a href="%7$s">サイトはこちら</a></td><td><a href=\"%8$s\"</td></tr>'; 28 $i = 1; 29foreach ( $xml->Feature as $key => $item ) { 30 31 printf( $html, $item->Name, $item->Property->Yomi, $item->Property->Tel1, $item->Property->Address, $item->Property->Station->Railway, $item->Property->Station->Name . '駅', $item->Property->Detail->PcUrl1,$item->Property->Detail->Image1); 32 33 $i++; 34} 35echo '</table>'; 36?> 37 38 39 40 41

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2016/05/20 10:36

とりあえず、正しく動作する小さいコードをまず書いてみるところから始めた方がいいですよ。バグがあるコードに別のコードをつぎはぎしてもバグだらけになるだけです。
kei344

2016/05/28 12:17

まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。
guest

回答4

0

ベストアンサー

コードの最後に以下を追加。

PHP

1$next = $my_page+1; 2$prev = $my_page-1; 3if($my_page != 1 ) { 4 print '<a href="?my_page='.$prev.'">&laquo; 前へ</a>'; 5} 6print '<a href="?my_page='.$next.'">次へ &raquo;</a>';

コピペだけど動くんじゃないかな、たぶん。


#####追記
これで動くかなあ?
あの、ちゃんとコードを理解して書いた方がいいですよ。私も含め、ここの回答者の皆さんがいつまでも面倒見てくれるわけじゃないですからね? 初心者だから優しくしてるだけであって、ここはあなたに代わってコードを書いてくれるサービスなわけじゃないですよ?
このコードも動かなければ、自分で直してくださいね?

PHP

1<?php 2/** 3 * Template Name: test1 4 * 5 */ 6get_header(); 7/* 8 * 01:北海道 9 02:青森県 03:岩手県 04:宮城県 05:秋田県 06:山形県 07:福島県 10 08:茨城県 09:栃木県 10:群馬県 11:埼玉県 12:千葉県 13:東京都 14:神奈川県 11 15:新潟県 16:富山県 17:石川県 18:福井県 19:山梨県 20:長野県 12 21:岐阜県 22:静岡県 23:愛知県 24:三重県 13 25:滋賀県 26:京都府 27:大阪府 28:兵庫県 29:奈良県 30:和歌山県 14 31:鳥取県 32:島根県 33:岡山県 34:広島県 35:山口県 15 36:徳島県 37:香川県 38:愛媛県 39:高知県 16 40:福岡県 41:佐賀県 42:長崎県 43:熊本県 44:大分県 45:宮崎県 46:鹿児島県 47:沖縄県 17 */ 18?> 19<form method="GET"> 20 <select name="my_filter" id="my_filter"> 21 <option value="04100"> 宮城県 仙台市(全体)</option> 22 <option value="04101"> 宮城県 仙台市 青葉区</option> 23 <option value="04102"> 宮城県 仙台市 宮城野区</option> 24 <option value="04103"> 宮城県 仙台市 若林区</option> 25 <option value="04104"> 宮城県 仙台市 太白区</option> 26 <option value="04105"> 宮城県 仙台市 泉区</option> 27 <option value="04202"> 宮城県 石巻市</option> 28 <option value="04203"> 宮城県 塩竈市</option> 29 <option value="04205"> 宮城県 気仙沼市</option> 30 <option value="04206"> 宮城県 白石市</option> 31 <option value="04207"> 宮城県 名取市</option> 32 <option value="04208"> 宮城県 角田市</option> 33 <option value="04209"> 宮城県 多賀城市</option> 34 <option value="04211"> 宮城県 岩沼市</option> 35 <option value="04212"> 宮城県 登米市</option> 36 <option value="04213"> 宮城県 栗原市</option> 37 <option value="04214"> 宮城県 東松島市</option> 38 <option value="04215"> 宮城県 大崎市</option> 39 <option value="04301"> 宮城県 刈田郡 蔵王町</option> 40 <option value="04302"> 宮城県 刈田郡 七ヶ宿町</option> 41 <option value="04321"> 宮城県 柴田郡 大河原町</option> 42 <option value="04322"> 宮城県 柴田郡 村田町</option> 43 <option value="04323"> 宮城県 柴田郡 柴田町</option> 44 <option value="04324"> 宮城県 柴田郡 川崎町</option> 45 <option value="04341"> 宮城県 伊具郡 丸森町</option> 46 <option value="04361"> 宮城県 亘理郡 亘理町</option> 47 <option value="04362"> 宮城県 亘理郡 山元町</option> 48 <option value="04401"> 宮城県 宮城郡 松島町</option> 49 <option value="04404"> 宮城県 宮城郡 七ヶ浜町</option> 50 <option value="04406"> 宮城県 宮城郡 利府町</option> 51 <option value="04421"> 宮城県 黒川郡 大和町</option> 52 <option value="04422"> 宮城県 黒川郡 大郷町</option> 53 <option value="04423"> 宮城県 黒川郡 富谷町</option> 54 <option value="04424"> 宮城県 黒川郡 大衡村</option> 55 <option value="04444"> 宮城県 加美郡 色麻町</option> 56 <option value="04445"> 宮城県 加美郡 加美町</option> 57 <option value="04501"> 宮城県 遠田郡 涌谷町</option> 58 <option value="04505"> 宮城県 遠田郡 美里町</option> 59 <option value="04581"> 宮城県 牡鹿郡 女川町</option> 60 <option value="04606"> 宮城県 本吉郡 南三陸町</option> 61 62 <form method="GET"> 63 <select name="my_filter" id="my_filter"> 64 <option value="04100"> 宮城県 仙台市(全体)</option> 65 <option value="04581"> 宮城県 牡鹿郡 女川町</option> 66 <option value="04606"> 宮城県 本吉郡 南三陸町</option> </select> 67 <input type="submit" value="絞り込み" /> 68</form> 69<?php 70if ( isset( $_GET[ 'my_filter' ] ) && preg_match( '![0-9]{5}!', $_GET[ 'my_filter' ] ) ) { 71 $area = $_GET[ 'my_filter' ]; 72} else { 73 $area = '04100'; 74} 75if ( isset( $_GET[ 'my_page' ] ) && is_numeric( $_GET[ 'my_page' ] ) ) { 76 77 $my_page = absint( $_GET[ 'my_page' ] ); 78} else { 79 $my_page = 1; 80} 81 82$id = '私のid'; 83$item_per_page = 50; 84$start = ( $my_page - 1) * $item_per_page + 1; 85$url = 'http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=' . $id . '&ac=' . $area .'&results=' . $item_per_page . '&start=' . $start . '&detail=full'; 86$xml = simplexml_load_file( $url ); 87$total_count = $xml->ResultInfo->Total; 88 89echo '<table class="left">'; 90echo '<caption>' . $start . '件目から' . $item_per_page . '件 表示中 / 総件数 ' . $total_count . '</caption>'; 91echo '<style scoped>.paging, table{width:80%;margin:auto;}td{border-bottom:1px solid #ccc;}td{color:#2980b9;}form{text-align:center;padding:2em;} 92 .page-link{padding:1em;margin:.3em;display:inline-block;width:3em;border:1px solid #ccc;word-wrap:normal;}h2{text-align:center;margin:2em 0;}</style>'; 93 94$html = '<tr><td>%1$s</td><td>%2$s</td><td>%3$s</td><td>%4$s</td><td>%5$s</td><td>%6$s</td><td>%7$s</td></tr>'; 95$i = 1; 96 97 function paging($limit, $page, $disp=5){ 98 //$dispはページ番号の表示数 99 $next = $page+1; 100 $prev = $page-1; 101 102 //ページ番号リンク用 103 $start = ($page-floor($disp/2) > 0) ? ($page-floor($disp/2)) : 1;//始点 104 $end = ($start > 1) ? ($page+floor($disp/2)) : $disp;//終点 105 $start = ($limit < $end)? $start-($end-$limit):$start;//始点再計算 106 107 if($page != 1 ) { 108 print '<a href="?my_page='.$prev.'">&laquo; 前へ</a>'; 109 } 110 111 //最初のページへのリンク 112 if($start >= floor($disp/2)){ 113 print '<a href="?my_page=1">1</a>'; 114 if($start > floor($disp/2)) print "..."; //ドットの表示 115 } 116 117 118 for($i=$start; $i <= $end ; $i++){//ページリンク表示ループ 119 120 $class = ($page == $i) ? ' class="current"':"";//現在地を表すCSSクラス 121 122 if($i <= $limit && $i > 0 )//1以上最大ページ数以下の場合 123 print '<a href="?my_page='.$i.'"'.$class.'>'.$i.'</a>';//ページ番号リンク表示 124 125 } 126 127 //最後のページへのリンク 128 if($limit > $end){ 129 if($limit-1 > $end ) print "..."; //ドットの表示 130 print '<a href="?my_page='.$limit.'">'.$limit.'</a>'; 131 } 132 133 if($page < $limit){ 134 print '<a href="?my_page='.$next.'">次へ &raquo;</a>'; 135 } 136 137 /*確認用 138 print "<p>current:".$page."<br>"; 139 print "next:".$next."<br>"; 140 print "prev:".$prev."<br>"; 141 print "limit:".$limit."<br>"; 142 print "start:".$start."<br>"; 143 print "end:".$end."</p>";*/ 144 145} 146 147paging(ceil($total_count/$item_per_page), $my_page); 148 149 150foreach ( $xml->Feature as $key => $item ) { 151 152 printf( $html, $item->Name, $item->Property->Yomi, $item->Property->Tel1, $item->Property->Address, $item->Property->Station->Railway, $item->Property->Station->Name . '駅', $item->Property->Detail->OfficialPcUrl1 ); 153 154 $i++; 155} 156echo '</table>'; 157?>

投稿2016/05/21 01:13

編集2016/05/26 11:12
Lhankor_Mhy

総合スコア36104

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

442ky119

2016/05/21 01:17

コードの最後とは、echo '</table>'; ?>の後ですか?
Lhankor_Mhy

2016/05/21 01:20

いや、PHPの中に書いてください。
Lhankor_Mhy

2016/05/21 01:22

PHPのコードは<?php ... ?>というPHPのタグの中に書くんです。その中のコードだけ実行される仕組みになっていますので、その外側に書いたものはそのまま出力されます。   覚えておくといいと思いますよ。
442ky119

2016/05/21 01:24

ページングはできるようになりましたが、wordpressには以下のように出ます。 以下は本文に載せます。<<前へ>><<次へ>>がホームページの上の部分に連続して表示されます。
Lhankor_Mhy

2016/05/21 01:30

ちなみに、wordpressのなんてファイルに書いてるんでしょうか?
Lhankor_Mhy

2016/05/21 01:44

出力数を数えてみたらちょうど100個ありました。APIの取得件数と同じ。 もしかしてなんですけど、なんかのループの中に書いたりしてます?
442ky119

2016/05/21 02:15

多分そうかもしれません。
442ky119

2016/05/21 02:18

バグが治りました。ただ、一つ気になったのはどうすればGoogleの1 2 3 4 5…10 次へ»というように「現在地がどこか」とページ番号が表示されるぺージングが作れますか?
Lhankor_Mhy

2016/05/21 02:26

function paging をコードの前の方に書いて、コードの最後にpaging(ceil($total_count/$item_per_page), $my_page);って書いてください。
442ky119

2016/05/21 03:00

function pagingの後ろに()や{}を入れる必要はありますか? また、paging(ceil($total_count/$item_per_page), $my_page);をコードの最後に書くと回答に書いてありましたが、それはprint '<a href="?my_page='.$next.'">次へ &raquo;</a>';の後ですか?
Lhankor_Mhy

2016/05/21 03:03

function paging は全部書いてください。 print '<a href="?my_page='.$next.'">次へ &raquo;</a>';の部分はもういらないです。
442ky119

2016/05/21 14:56

わかりました。 print '<a href="?my_page='.$next.'">次へ &raquo;</a>';の部分はなくてもページ遷移ができるんですね?
Lhankor_Mhy

2016/05/22 02:25

といいますか、回答のコードは捨てていいです。
442ky119

2016/05/22 03:36

分かりました。 あと、もう一つ疑問があります。 googleみたいに、キーワードによってはページ数が10ページだったり2ページだったりするにはどうすればいいですか?つまり、よく知られているキーワードは10ページ以上あるとします。逆によく知られていないキーワードは10ページもいかないとします。こういう風にキーワードによって表示するページをコントロールするには、どういうコードを書けばいいですか?
Lhankor_Mhy

2016/05/22 04:06

その内容は現状のコードに含まれてますよ。
442ky119

2016/05/22 04:24

ありがとうございます。 ページ番号のフォントは編集できますか?
442ky119

2016/05/24 07:48

すみません、ページング処理はできるのですが『次へ』『2ページ』をクリックしても1ページの内容が表示されます。どうすればいいですか?
Lhankor_Mhy

2016/05/25 01:25

現在のソースはhttps://teratail.com/questions/35335に提示されているものですか?
442ky119

2016/05/26 09:12

はい、そうです。
442ky119

2016/05/26 12:34

すみません、僕の説明不足でした。 実はページング処理はだいたいできるのですが、以前僕が作成したphpコードと同様にLhankor_Mhyさんが提示したphpコードも例として宮城県仙台市青葉区を絞り込み検索して2ページ目をクリックしても仙台市全体の1ページ目に戻ってしまいます。 仙台市全体だけはページ遷移ができます。 この原因はなんですか?
Lhankor_Mhy

2016/05/26 12:54

URLに?my_page=みたいにmy_filter=を埋めておかないといけないです。そうしないと、$_GET[ 'my_filter' ]でフィルタ条件が受け取れないので。
442ky119

2016/05/26 13:42

それはどういう風にコードを書くのですか?
442ky119

2016/05/26 13:49

URLに?my_page=みたいにmy_filter=を埋めておかないとはどういうことですか?
Lhankor_Mhy

2016/05/27 04:05

$_GET[ 'my_filter' ]というコードは何をしているのか分かりますか?
442ky119

2016/05/27 04:13

適当に書いたものなので詳しくわかりません。 確か、データをフィルタリングするんでしたっけ?
442ky119

2016/05/27 07:04

多分この問題が解決できない為、先に進めないんだと思います。
442ky119

2016/05/27 07:05

はい、分かります。 僕のphpは今、そうなっているんですね。
Lhankor_Mhy

2016/05/27 07:15

ページングのコード部分に書かれているURLは http://hogehoge.com/?my_page=1 のような形で出力されています。 このURLだと、$_GET[ 'my_filter' ]に値が入らないので、フィルタをかけた状態にならないんです。 ですので、これを http://hogehoge.com/?my_page=1&my_filter=04100 のような形にしなくてはいけないです。 これで分かりますか?
Lhankor_Mhy

2016/05/27 07:51

ああ、惜しいです。そっちではなくてページングをしているURLの方です。 つまり、 print '<a href="?my_page='.$next.'">次へ &raquo;</a>'; を print '<a href="?my_page='.$next.'&my_filter='.$area.'">次へ &raquo;</a>'; に変更するんです。 他のURLについても同様です。
442ky119

2016/05/27 08:06

すみません、知識不足なもので というと、<a href=”の部分は全部my_filterを付け足すんですね?
442ky119

2016/05/27 08:41

いくらやっても仙台市全体になってしまいます。 補足:編集したphpコードを本文に提示します。
Lhankor_Mhy

2016/05/27 09:24

ああ、しまった、スコープが違うのか…… 関数の初めの方に、 global $area; と入れるとどうなりますか。
442ky119

2016/05/27 09:40

関数の初めの方とは何処ですか?
442ky119

2016/05/27 09:41

globalを入れなくてはいけないのですか?
Lhankor_Mhy

2016/05/27 10:58

関数の初めの方とは function paging($limit, $page, $disp=5){ の下あたりです。
442ky119

2016/05/27 12:07

globalのphpコードを教えて下さい。
Lhankor_Mhy

2016/05/27 12:12

コメントに書いた通りなんですが、動作しませんか?
442ky119

2016/05/27 12:35

function paging($limit, $page, $disp=5){ の下あたりにglobal $area;と書くのですか?
Lhankor_Mhy

2016/05/28 04:06

そうですね。       いや、あの、これだけのコメントでこの質問を上げるのイヤなんですが…… sage機能の実装をお願いします←
442ky119

2016/05/28 06:06

global $area;のphpコードの書き方がイマイチ分からないのでphpコードを教えて下さい。 宜しくお願いします。
442ky119

2016/05/28 06:06

また、sage機能の実装の仕方も分からないので教えて下さい。
Lhankor_Mhy

2016/05/28 06:07

function paging($limit, $page, $disp=5){ の下あたりにglobal $area;と書けばいいのですが、動作しませんか? あと、sageの話は忘れてください……
442ky119

2016/05/28 06:36

function paging($limit, $page, $disp=5){global area;と書くのですか?
442ky119

2016/05/28 06:38

上の質問は忘れて下さい。 最近、質問文に提示したphpコードに誤りはありますか? 間違っていなかったら、あとはfunction paging($limit, $page, $disp=5){global $area;を付け足すだけですよね?
Lhankor_Mhy

2016/05/28 06:53

> 最近、質問文に提示したphpコードに誤りはありますか? デバッグはご自分でやってください。
442ky119

2016/05/28 07:08

すみません、僕が言いたいのは最近質問文に提示したphpコードにglobal $area;を付け足せばいいのですか?
442ky119

2016/05/28 07:10

また、何故最初に仙台市全体区が表示されるのですか?
Lhankor_Mhy

2016/05/28 07:13

えーと、私が言いたいのはとりあえず試してみればいいんじゃないですか?ってことなんですが。 ローカルに実行環境作ってあるんですよね? 5秒で書いて試せると思うんですが、この問答意味があるんですかね?
Lhankor_Mhy

2016/05/28 07:16

> 何故最初に仙台市全体区が表示されるのですか? 知らないですよ、あなたが書いたコードなんでしょ?
退会済みユーザー

退会済みユーザー

2016/05/28 07:24

> Lhankor_Mhy さん 心中お察しします...。
Lhankor_Mhy

2016/05/28 11:05

> Kosuke_Shibuya さん よい質問者に成長されることを期待して、がんばります。
442ky119

2016/05/28 11:47

Lhankor_Mhyさん、ありがとうございます。 問題が解決しました。
guest

0

ページング自体は、MySQL 等のデータベースは、関係ないです。データの件数が多いから、データの保存にデータベースを使っているだけと思います。

とりあえず、MySQL を使っていない ページングのサンプルのURLを書いておきます。

http://www.webopixel.net/php/494.html

http://piyopi-yo.info/tori_wp/?p=91

http://tenderfeel.xsrv.jp/php/639/

サンプルを動かして、動作や中身を理解してから、自分のプログラムに組み込むようにしましょう。

投稿2016/05/20 10:27

編集2016/05/20 10:37
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

442ky119

2016/05/21 00:52

ご回答ありがとうございます。 上記に記載したphpコードはどこの行に書けばいいのかわかりません。pagingについての知識がないのですみません。
guest

0

クエリ文のlimit句で検索して下さい

投稿2016/05/20 12:42

YoSa

総合スコア49

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

PHPで実装するのなら、フレームワークの利用を検討してみるのも良いかと思います

投稿2016/05/20 10:47

KatsumiTanaka

総合スコア924

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

442ky119

2016/05/27 12:54

実はページング処理はだいたいできるのですが、以前僕が作成したphpコードと同様にLhankor_Mhyさんが提示したphpコードも例として宮城県仙台市青葉区を絞り込み検索して2ページ目をクリックしても仙台市全体の1ページ目に戻ってしまいます。 仙台市全体だけはページ遷移ができます。 この原因はなんですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問