Table of Contents
回复讨论(解决方案)
Home Backend Development PHP Tutorial 两个设置分页的都出问题,想屎了.

两个设置分页的都出问题,想屎了.

Jun 23, 2016 pm 01:58 PM
Pagination set up

<?php$offset = isset($_GET['pid'])?intval($_GET['pid']):1;if(!$offset) $offset = 1;$perpage = 50;$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0);$sql = 'SELECT * FROM library.messages'." LIMIT $perpage OFFSET ".($offset-1);$result = $db->query($sql);if ($result){	foreach ($result->fetchAll() as $row)	{		echo "subject:    ".$row[5]."<br />";	}}else{	$error = $db->errorInfo();	echo "error happened..".$error[2];	exit();}buildIndex($perpage, $total);//1,50,3500/////////////////////////////////////////////////////////////////function buildLink($index, $offset){	echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?pid = $offset'>$index</a>";}function buildIndex($perpage, $total){	$separator = '|';	//buildLink($offset==1, '<<Prev', '')	for ($start = 1, $end = $perpage; $end < $total; $start += $perpage, $end += $perpage)	{		echo $separator;		buildLink("$start-$end", $start);	}	$end = ($total > $start) ? "$total":"";	echo $separator;	buildLink("$start-$end", $start);}?>
Copy after login


另一种思路的.....
<?php$offset = isset($_GET['pid'])?intval($_GET['pid']):1;if(!$offset) $offset = 1;$perpage = 50;$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0);$sql = 'SELECT * FROM library.messages LIMIT '. ($offset -1)*$perpage.", $perpage ";$result = $db->query($sql);if ($result){	foreach ($result->fetchAll() as $row)	{		echo "subject:    ".$row[5]."<br />";	}}else{	$error = $db->errorInfo();	echo "error happened..".$error[2];	exit();}$numpage = $total%$perpage;if($total%$perpage) $numpage++;$cur = $offset;if ($cur < $numpage){	echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?offset = ".($cur+1)."'> Next Page</a><br />";}if($cur > 0){	echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?offset =". ($cur-1)."'> Prev Page</a><br />";}?>
Copy after login


问题如下:每次点击下一页,或者上一页,显示的都是同样的内容,即首页内容。 当数据表的内容有3000行...是怎么回事啊?


回复讨论(解决方案)

没有看到你处理传入的 offset

没有看到你处理传入的 offset



$offset = isset($_GET['pid'])?intval($_GET['pid']):1;if(!$offset) $offset = 1;开头就处理了啊
Copy after login

参考了下往上的,现在修改如下:

<?php$offset = isset($_GET['ofset']) ? intval($_GET['offset']) : 1;if(!$offset) $offset = 1;echo "the current page: $offset<br />";//测试语句$perpage = 30; //每页显示30条目信息$offset = ($offset-1)*$perpage;$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0); //获取信息的总数$sql = "SELECT * FROM library.messages LIMIT $offset, $perpage";$result = $db->query($sql);if ($result){	foreach ($result->fetchAll() as $row)	{		echo "subject:    ".$row[5]."<br />";	}}else{	$error = $db->errorInfo();	echo "error happened..".$error[2];	exit();}$numpage = ceil($total/$perpage);if($total%$perpage) $numpage++;//计算可以显示为numpage页if ($numpage > 1){	for ($i = 1; $i <= $numpage; $i++)	{		if ($i == $offset) //如果是当前页		{			echo "$i";		}		else		{			//echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?offset=$i'".">$i</a>  ";			echo "<a href = '"."http://127.0.0.1/php/example/setPage02.php?offset=$i'>$i</a>  ";		}	}}
Copy after login

当我点击显示第20页的内容时,测试信息显示的还是第一页,但是我获取的是:$_GET['offset']没有错啊,怎么不论点那一页都显示是第一页?

如下图,我点的是第20页。浏览器地址栏显示: http://127.0.0.1/php/example/setPage02.php?offset=20
但echo "the current page: $offset
"; 显示的还是第一页。 
怎么回事?

42 行有 ...setPage02.php? offset=$i'>$i....
而第 2 行是 $offset = isset($_GET[' ofset']) ? intval($_GET['offset']) : 1;

知道问题在哪了吧?

42 行有 ...setPage02.php? offset=$i'>$i....
而第 2 行是 $offset = isset($_GET[' ofset']) ? intval($_GET['offset']) : 1;

知道问题在哪了吧?





哈哈哈,,,,我已经被自己打败了,看来我还是要换编辑工具了,这么明显的拼写差异没发现,害得我好一顿纠结...THX

42 行有 ...setPage02.php? offset=$i'>$i....
而第 2 行是 $offset = isset($_GET[' ofset']) ? intval($_GET['offset']) : 1;

知道问题在哪了吧?




现在初学,我是在windows环境下,平时一直都是用EditPlus编辑工具,这么明显的差异就这么放过去了,由衷的蛋碎》。。。
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to set the scheduled time for publishing works on Douyin? How does it set the video duration? How to set the scheduled time for publishing works on Douyin? How does it set the video duration? Mar 27, 2024 pm 06:11 PM

Publishing works on Douyin can attract more attention and likes, but sometimes it may be difficult for us to publish works in real time. In this case, we can use Douyin's scheduled release function. Douyin’s scheduled release function allows users to automatically publish works at a scheduled time, which can better plan the release plan and increase the exposure and influence of the work. 1. How to set the scheduled time for publishing works on Douyin? To set a scheduled release time, first go to Douyin's personal homepage, find the "+" button in the upper right corner, and click to enter the release page. There is a clock icon in the lower right corner of the publishing page. Click to enter the scheduled publishing interface. In the interface, you can choose the type of work you want to publish, including short videos, long videos, and live broadcasts. Next, you need to set a time for your work to be published. TikTok provides

Where is the Douyin tag set? How can it be tagged so that it can be pushed accurately? Where is the Douyin tag set? How can it be tagged so that it can be pushed accurately? Mar 27, 2024 am 11:01 AM

As one of the most popular short video platforms in the world, Douyin allows everyone to become a creator and share every moment of life. For Douyin users, tags are a very important function. It can help users better classify and retrieve content, and also allows the platform to push appropriate content to users more accurately. So, where are the Douyin tags set? This article will explain in detail how to set up and use tags on Douyin. 1. Where is the Douyin tag set? Using tags on Douyin can help users better classify and label their works, making it easier for other users to find and follow them. The method to set the label is as follows: 1. Open the Douyin APP and log in to your account. 2. Click the &quot;+&quot; sign at the bottom of the screen and select the &quot;Publish&quot; button. 3.

How to set up scheduled publishing on Weibo_Tutorial on how to set up scheduled publishing on Weibo How to set up scheduled publishing on Weibo_Tutorial on how to set up scheduled publishing on Weibo Mar 29, 2024 pm 03:51 PM

1. Open the Weibo client, click the three little dots on the editing page, and then click Scheduled Post. 2. After clicking on scheduled posting, there will be a time option on the right side of the publishing time. Set the time, edit the article, and click on the yellow words in the lower right corner to schedule posting. 3. The mobile version of Weibo does not currently support scheduled publishing. This function can only be used on the PC client!

Do Not Disturb Mode Not Working in iPhone: Fix Do Not Disturb Mode Not Working in iPhone: Fix Apr 24, 2024 pm 04:50 PM

Even answering calls in Do Not Disturb mode can be a very annoying experience. As the name suggests, Do Not Disturb mode turns off all incoming call notifications and alerts from emails, messages, etc. You can follow these solution sets to fix it. Fix 1 – Enable Focus Mode Enable focus mode on your phone. Step 1 – Swipe down from the top to access Control Center. Step 2 – Next, enable “Focus Mode” on your phone. Focus Mode enables Do Not Disturb mode on your phone. It won't cause any incoming call alerts to appear on your phone. Fix 2 – Change Focus Mode Settings If there are some issues in the focus mode settings, you should fix them. Step 1 – Open your iPhone settings window. Step 2 – Next, turn on the Focus mode settings

How to set the countdown to grab tickets in Damai How to set the countdown to grab tickets in Damai Apr 01, 2024 pm 07:01 PM

When buying tickets on Damai.com, in order to ensure that the ticket purchase time can be accurately grasped, users can set a floating clock to grab tickets. The detailed setting method is below, let us learn together. How to bind the floating clock to Damai 1. Click to open the floating clock app on your phone to enter the interface, and click on the location where the flash sale check is set, as shown in the figure below: 2. After coming to the page of adding new records, click on Damai.com Copy the ticket purchase link page copied in. 3. Next, set the flash sale time and notification time below, turn on the switch button behind [Save to Calendar], and click [Save] below. 4. Click to turn on [Countdown], as shown in the figure below: 5. When the reminder time comes, click the [Start Picture-in-Picture] button below. 6. When the ticket purchase time comes

Where to set Douyin recommendations and selections Where to set Douyin recommendations and selections Mar 27, 2024 pm 05:06 PM

Where are the recommendations and selections on Douyin? In Douyin short videos, there are two categories: selection and recommendation. Most users don’t know how to set up recommendations and selections. Next is the Douyin tutorial that the editor brings to users. Audio recommendations and selected setting method tutorials, interested users come and take a look! Douyin usage tutorial Where to set up Douyin recommendations and selections 1. First open the Douyin short video APP and enter the main page, click on the [Me] area in the lower right corner and select [three horizontal lines] in the upper right corner; 2. Then on the right The function bar will expand, slide the page to select [Settings] at the bottom; 3. Then on the settings function page, find the [Personal Information Management] service; 4. Finally jump to the personal information management page, slide [Personalized Content Recommendations] 】The buttons on the back can be set.

How to set the watermark in the middle on Weibo_How to set the watermark in the middle on Weibo How to set the watermark in the middle on Weibo_How to set the watermark in the middle on Weibo Mar 29, 2024 pm 03:31 PM

1. First enter Weibo, then click on me in the lower right corner and select [Customer Service]. 2. Then enter [Watermark] in the search box and select [Set Weibo Image Watermark]. 3. Then click [Link] in the interface. 4. Then click [Image Watermark Settings] in the newly opened window. 5. Finally, check [Picture Center] and click [Save].

How to set the Enter key to send messages in QQ How to set the Enter key to send messages in QQ Mar 25, 2024 pm 07:10 PM

1. First, click on the mobile phone desktop to enter QQ, and click on the avatar in the upper left corner. 2. Click [Settings] in the lower left corner. 3. Click to open [Accessibility]. 4. Then we only need to click to turn on the [Enter key to send message] switch.

See all articles