ホームページ > バックエンド開発 > PHPチュートリアル > php でページを変更すると、シリアル番号が再び始まります。

php でページを変更すると、シリアル番号が再び始まります。

WBOY
リリース: 2016-06-23 14:22:16
オリジナル
1481 人が閲覧しました

php php ページ変更後のシリアル番号の問題

$MYSQL->query("select cu.*,cy.name from customer cu,custtype cy where 1=1 and cu.code=cy . コード制限 0,18");
for($i=1;$i $MYSQL->fetch($i);
$customerid=$MYSQL->data[ customerid ]; // 顧客番号
$KSName=$MYSQL->data[KSName] // ユーザー名 - 略語
echo "$i";シリアル番号
echo "$customerid"; //顧客 ID
echo "$KSName";ユーザー名 - 略語
?>

18 レコードごとに 1 ページを変更します。最初のページではシリアル番号は 1 ~ 18 ですが、2 ページ目に切り替えるとシリアル番号は 1 ~ 18 から始まります。 3ページでも同様です。ページネーションをしていない場合は問題ありませんが、ここでページネーションを行わないことは不可能です。この問題を解決します。 。




ディスカッションへの返信 (解決策)

limit 0,18
ここでの最初の制限は常に 0 であり、これはもちろん結果です

limit 0,18 これは、ここで渡されるページング パラメーターである必要があります。

for($i=1;$i echo "$i"; //シリアル番号

あなたのシリアル番号はプログラムはもちろん全て1からのスタートです

上記の回答は、ページを変更しても内容が変わらない問題を解決するためのものです
シリアル番号をやり直す問題は解決できません

つまり、解決方法ですページを変更すると、シリアル番号が 1 から 18 のように最初のページの最後のシリアル番号から始まり、2 ページ目のシリアル番号が 19 から始まる問題。また1から始めるのではなく。 。

皆さんが挙げた理由は私には分かりません。

必要なページ番号が $_GET['page'] によって渡されたと仮定すると、

$offs = 18 * isset($_GET['page']) ? $_GET['page'] - 1 : 0;$MYSQL->query("select cu.*,cy.name from customer cu,custtype cy where 1=1 and cu.code=cy.code limit $offs,18");for($i=$offs+1;$i<$offs+$count;$i++){ $MYSQL->fetch($i);	$customerid=$MYSQL->data[customerid];  // 客户编号$KSName=$MYSQL->data[KSName];  //  用户名称 - 简称echo "<td align='center'>$i</td>"; //序号echo "<td align='center'>$customerid</td>";  // 客户编号echo "<td align='center'>$KSName</td>"; //用户名称 - 简称
ログイン後にコピー

6 階にいる兄弟に返信すると、まだ機能していないようです、

と思います。モデレーターの方法で問題ありません。まず方法を見つけてください。ページ番号を $offs に渡してから、6# の指示に従ってください。

変数を個別に設定し、シリアル番号を計算する

function toolkit_pages($page, $total, $phpfile, $pagesize = 3, $pagelen = 3, $link = "&") {		$num_t_count = $total;		$phpfile = "index.php?" . $phpfile;		$pagecode = ''; //定义变量,存放分页生成的HTML		$page = intval ( $page ); //避免非数字页码		$total = intval ( $total ); //保证总记录数值类型正确		if (! $total)			return array (); //总记录数为零返回空数组		$pages = ceil ( $total / $pagesize ); //计算总分页		//处理页码合法性		if ($page < 1)			$page = 1;		if ($page > $pages)			$page = $pages;			//计算查询偏移量		$offset = $pagesize * ($page - 1);		//页码范围计算		$init = 1; //起始页码数		$max = $pages; //结束页码数		$pagelen = ($pagelen % 2) ? $pagelen : $pagelen + 1; //页码个数		$pageoffset = ($pagelen - 1) / 2; //页码个数左右偏移量				//生成html		$pagecode = '<div class="page"><span>' . $total . "</span> ";		$pagecode .= "<span>$page/$pages</span> "; //第几页,共几页		//如果是第一页,则不显示第一页和上一页的连接		if ($page != 1) {			$pagecode .= "<a href=\"{$phpfile}" . $link . "page=1\"><<</a> "; //第一页			$pagecode .= "<a href=\"{$phpfile}" . $link . "page=" . ($page - 1) . "\">Prev</a> "; //上一页		}		//分页数大于页码个数时可以偏移		if ($pages > $pagelen) {			//如果当前页小于等于左偏移			if ($page <= $pageoffset) {				$init = 1;				$max = $pagelen;			} else { //如果当前页大于左偏移				//如果当前页码右偏移超出最大分页数				if ($page + $pageoffset >= $pages + 1) {					$init = $pages - $pagelen + 1;				} else {					//左右偏移都存在时的计算					$init = $page - $pageoffset;					$max = $page + $pageoffset;				}			}		}		//生成html		for($i = $init; $i <= $max; $i ++) {			if ($i == $page) {				$pagecode .= '<span>' . $i . '</span> ';			} else {				$pagecode .= "<a href=\"{$phpfile}" . $link . "page={$i}\">$i</a> ";			}		}		if ($page != $pages) {			$pagecode .= "<a href=\"{$phpfile}" . $link . "page=" . ($page + 1) . "\">Next</a> "; //下一页			$pagecode .= "<a href=\"{$phpfile}" . $link . "page={$pages}\">>></a> "; //最后一页		}		$pagecode .= '</div>';				return array ('pagecode' => $pagecode, 'sqllimit' => ' limit ' . $offset . ',' . $pagesize );		}//引用说明/*分页列表*/		if (url_get ( 'count_page' ) != '') {			$count_page = url_get ( 'count_page' );		} else {			$count_page = 15;		}		if (url_get ( 'page' ) <= 0 || url_get ( 'page' ) == '') {			$page = 1;		} else {			$page = url_get ( 'page' );		}		$t_count = $this->Cmspage_model->row_array ();//统计记录个数自己写个sql语句		$t_first = ($page - 1) * $count_page;		$list = $this->Cmspage_model->result_array ( $t_first, $count_page );//返回数组自己写个sql语句		//引用分页函数		$getpageinfo = toolkit_pages ( $page, $t_count, "?c=page&m=index", $count_page, 8 );
ログイン後にコピー

#10 ルー兄弟がページング コードを書いたようですが、これは私の問題とはあまり関係がないようです。

神様に解決してください。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

神様に解決してください。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

フロア 6 はすでに解決していますが、完全なコードを書くのを他の人に頼むことはできません。 SQL ステートメントでの制限の使用法に注目してください。どうやって技術スコアが800点を超えたのですか?あなたは私たちをからかうためにここにいます。 。 。 。 。

#14、兄弟、問題が理解できないなら、ナンセンスなことを言わないでください。 。 OK!!!!!!!!

#14、兄弟、問題が理解できないなら、ナンセンスなことを言わないでください。 。 ok!!!!!!!!
ページ番号を変更するときは、$_GET['page']; のように、URL から渡された $page 値を取得する必要があります。その後、それぞれに対して 1 つずつ取得します。ページには $page_size があり、$page_size=18;
したがって、ページに表示するときのリストの ID 番号は次のようになります: ($page-1)*$page_size+$i;配列の添字。

$page=$_GET['page'];$page_size=18;$count=$MYSQL->query("select count(*) from customer cu,custtype cy where 1=1 and cu.code=cy.code");$pages = ceil($count/$page_size);if($page<1) $page = 1;if($page>$pages)$page = $pages;$offset = ($page-1) * $page_size;if($offset<0) $offset = 0;$MYSQL->query("select cu.*,cy.name from customer cu,custtype cy where 1=1 and cu.code=cy.code  limit ".$offset.",".$page_size);for($i=1;$i<$count;$i++){	$MYSQL->fetch($i);		$customerid=$MYSQL->data['customerid'];  // 客户编号	$KSName=$MYSQL->data['KSName'];  //  用户名称 - 简称	$thisPage=($page-1).$page_size+$i;	echo "<td align='center'>".$thisPage."</td>"; //序号	echo "<td align='center'>$customerid</td>";  // 客户编号	echo "<td align='center'>$KSName</td>"; //用户名称 - 简称}
ログイン後にコピー


$MYSQL オブジェクトの具体的な状況がわからないので、

$thisPage=($page-1).$page_size+$i;

この文に焦点を当てて別の場所でアイデアを考えます。

訂正します。これは編集できません。$thisPage=($page-1)*$page_size+$i;

そうですね、#16 ルー兄弟が正しいです。 。本当にありがとうございます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート