-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtopic-131.html
132 lines (117 loc) · 9.37 KB
/
topic-131.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr">
<head>
<title>日本PHPユーザ会 掲示板: PHP 5 » ページング処理について教えて下さい</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。" />
<meta name="keywords" content="php,web,php.gr.jp,community,usebb" />
<link rel="stylesheet" type="text/css" href="./templates/phpgrjp0.3/styles.css" />
<link rel="shortcut icon" href="./templates/phpgrjp0.3/gfx/usebb.ico" />
<link rel="alternate" type="application/rss+xml" title="日本PHPユーザ会 掲示板 RSS フィード" href="rss.xml" />
<script type="text/javascript" src="sources/javascript.js"></script>
</head>
<body onload="javascript:init_external()">
<div id="pagebox-bg">
<div id="shadow-left">
<div id="shadow-right">
<p id="logo"><a href="index.html"><img src="./templates/phpgrjp0.3/gfx/usebb.png" alt="UseBB" title="ホーム" /></a></p>
<h1 id="boardname"><span id="line">日本PHPユーザ会 掲示板</span></h1>
<h2 id="boarddescr">日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。</h2>
<div id="topmenu"><ul>
<li><a href="index.html">ホーム</a></li><li><a href="faq.html">FAQ</a></li><li><a href="active.html">活発なトピック</a></li>
</ul></div>
<div id="topmenu-shadow"></div>
<p class="locationbar">
• <a href="index.html">日本PHPユーザ会 掲示板</a> » <a href="forum-4.html">PHP 5</a> » ページング処理について教えて下さい
</p>
<h3 id="forumname"><a href="topic-131.html">ページング処理について教えて下さい</a></h3>
<p id="forummods"></p>
<p id="toolbartop"> </p>
<p id="pagelinkstop">ページ: 1</p>
<table class="maintable">
<tr>
<th>投稿者</th>
<th>投稿</th>
</tr>
<tr class="tr1">
<td class="postername">
<div class="posternamecontainer"><a href="profile-200.html">Stama</a></div>
</td>
<td class="postinfo">
<div class="postlinks"></div>
<div class="postdate"><a href="topic-post367.html#post367" name="post367" rel="nofollow">#1</a> 2009 年 4 月 23 日(木) 9:22</div>
</td>
</tr>
<tr class="tr1">
<td class="posterinfo">
会員
<div class="avatar"></div>
<div class="field">登録者: 4 2009</div>
<div class="field">返信数: 5</div>
<div class="field"></div>
</td>
<td class="postcontent">
<div class="post">初めまして。<br />ページング処理で15件ずつで区切って表示したいと思っています。<br /><br />しかし、次頁を押下しても同じレコードが表示されてしまいます。<br /><br />$i<=$endlineの部分では$i=0、$endline=15となり次のページにすると$i=14、$endline=29とちゃんとなります。<br /><br />初心者ながらに色々、試してみたのですが分からず困っています <img src="./templates/phpgrjp0.3/smilies/cry.gif" alt=":'(" /> <br />長いソースで大変恐縮ですがアドバイスを頂きたいと存じます。<br /><br />よろしくお願い致します。<br />-----------------------------------------------------------<br />$maxline = 20;<br /><br />$page = $HTTP_GET_VARS["page"];<br /><br />if ($page < 1) {<br />$page = 1;<br />}<br />$startline = ($page - 1) * $maxline;<br /><br />$endline = $page * $maxline -1;<br /><br /><br />$sql = "select * from db1 id DESC";<br />$r = odbc_exec($con, $sql);<br /><br />$maxpage = ceil(odbc_num_rows($r) / $maxline);<br /><br />$i=$startline;<br /><br />while(odbc_fetch_array($r) and $i<=$endline){<br /><br />$item1 = odbc_result($r, "id");<br />$item2 = odbc_result($r, "clm1");<br /><br />?><br /><form action="index.php" method="post"><br /><TR class="old"><br /><TD align="center"><br /><TD><?= $item1 ?></TD><br /><TD><?= $item2 ?></TD><br /></FORM><br /><?<br />}<br />//$iに1を加算<br />$i = $i + 1;<br />}<br />//現在の頁/最終頁を表示<br />print("<caption valign='top' align='right'>Page ".$page."/".$maxpage."</caption>");<br /><br />print("<caption align='bottom'>");<br /><br />if ($page > 1) {<br />$i = $page - 1;<br /><br />print("<a href='page.php?page=".$i ."'>前頁</a>");<br />}<br /><br />if ($page <> 1 and $page <> $maxpage) {<br />print("・");<br />}<br />if ($page < $maxpage) {<br />$i = $page + 1;<br /><br />print("<a href='page.php?page=".$i ."'>次頁</a>");<br />}<br />print("<br>");<br /><br />for ($i=1;$i<=$maxpage;$i++) {<br /><br />if ($i==$page){<br />print("[".$i."]");<br />} else {<br />print("<a href='page.php?page=".$i."'>$i</a>");<br />}<br />if ($i <> $maxpage) {<br />print("・");<br />}<br />?></div>
</td>
</tr>
<tr class="tr2">
<td class="postername">
<div class="posternamecontainer"><a href="profile-36.html">kona@m</a></div>
</td>
<td class="postinfo">
<div class="postlinks"></div>
<div class="postdate"><a href="topic-post368.html#post368" name="post368" rel="nofollow">#2</a> 2009 年 4 月 23 日(木) 11:49</div>
</td>
</tr>
<tr class="tr2">
<td class="posterinfo">
会員
<div class="avatar"></div>
<div class="field">登録者: 10 2007</div>
<div class="field">返信数: 71</div>
<div class="field"></div>
</td>
<td class="postcontent">
<div class="post">ソースを見てみますと、<br />(1) $iの値はちゃんと次のページの行を指している<br />(2) しかしそれとは関係なくデータは最初の行から読んでいる<br />といった感じになっているようです。<br /><br />方法その1:<br />表示する行よりも前の行を先に読み飛ばしてしまう方法があります。この場合は<br /><pre class="code">$i=$startline;</pre>の行の代わりに、次の行で置き換えてみます。<br /><pre class="code">for ( $i = 0; $i < $startline; $i ++ ) {<br /> odbc_fetch_array($r);<br />}</pre><br />方法その2:<br />マニュアルを読んだだけで試したことがないのですが、odbc_fetch_array()関数は、2つ目の引数で「どの行番号を取得するのかを任意で指定する。 」とありますので、表示する行を指定してデータを取得できそうです。この場合は<br /><pre class="code">while(odbc_fetch_array($r) and $i<=$endline) {</pre>の行を、次のように訂正してみます。<br /><pre class="code">while(odbc_fetch_array($r, $i) and $i<=$endline) {</pre><br />まずは方法その2のほうから試してみて下さい。</div>
</td>
</tr>
<tr class="tr1">
<td class="postername">
<div class="posternamecontainer"><a href="profile-200.html">Stama</a></div>
</td>
<td class="postinfo">
<div class="postlinks"></div>
<div class="postdate"><a href="topic-post369.html#post369" name="post369" rel="nofollow">#3</a> 2009 年 4 月 23 日(木) 12:16</div>
</td>
</tr>
<tr class="tr1">
<td class="posterinfo">
会員
<div class="avatar"></div>
<div class="field">登録者: 4 2009</div>
<div class="field">返信数: 5</div>
<div class="field"></div>
</td>
<td class="postcontent">
<div class="post">kona@mさん<br /><br />ありがとうございます <img src="./templates/phpgrjp0.3/smilies/smile.gif" alt=":)" /> <br />完璧です!<br /><br />「方法その2」でうまく表示できました。<br /><br />なるほど。<br /><br />odbc_fetch_array()関数は使用した事がなかったので勉強してみます。<br />また頂いた修正ソースを見て再度、自分なりに理解してみたいと思います。<br /><br />またご質問させて頂く機会がありましたらどうぞよろしくお願い致します。<br /><br />本当にありがとうございました!<div class="editinfo">« 最終編集者 <a href="profile-200.html">Stama</a> 日時 2009 年 4 月 23 日(木) 12:18. »</div></div>
</td>
</tr>
</table>
<p id="toolbarbottom"> </p>
<p id="pagelinksbottom">ページ: 1</p>
<div id="bottomfix"></div>
<p id="actionlinks"></p>
<p class="locationbar">
• <a href="index.html">日本PHPユーザ会 掲示板</a> » <a href="forum-4.html">PHP 5</a> » ページング処理について教えて下さい
</p>
<p id="linkbar">
</p>
<p id="bottom">
日本PHPユーザ会 掲示板 は <a href="http://www.usebb.net">UseBB 1 フォーラムソフトウェア</a> を使用しています
</p>
<div id="bottom-shadow"></div>
</div>
</div>
</div>
</body>
</html>