分页上下限(Pagination Upper and Lower Limit)
我试图获得我的分页按钮的上限和下限。
我想那里总是有9个按钮。 因此,最初以当前页面索引为1,它将是:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
所以我的下限是1,我的上限是9。
当当前页面索引达到8我希望分页看起来像这样:
| 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
假设总页数为15,当前页面索引为14,分页的格式如下所示:
| 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
我似乎无法得到它恰到好处。 到目前为止,我尝试使用LINQ(这是我想要的方式):
LowerCount = PageIndex; HigherCount = (int)PageIndex + 5 < TotalPages ? PageIndex + 5 : TotalPages;
I'm trying to get the upper and lower limit for my pagination buttons.
I want there to always be 9 buttons. So initially with a current page index of 1 it would be:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
So my lower would be 1 and my upper would be 9.
When the current page index gets to 8 I would want the pagination to look like this:
| 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
Say the total pages where 15 and the current page index is now 14 the pagination would look like:
| 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
I cant seem to get it just right. My attempt using LINQ so far is (which is way off what I want it to do):
LowerCount = PageIndex; HigherCount = (int)PageIndex + 5 < TotalPages ? PageIndex + 5 : TotalPages;
原文:https://stackoverflow.com/questions/49072242
最满意答案
我终于找到了解决方案,首先我做了一个errCode的var_dump(在sry之前不知道这个函数)
var_dump($req->errorCode());
他返回错误代码:42S02
所以对于修复,只需添加一个简单的解决方案
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
谢谢你的帮助
I finally find the solution, first i make a var_dump of the errCode (don't know this function before sry)
var_dump($req->errorCode());
he returning the error code: 42S02
So for fix that a simple solution just add:
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Thanks for your help
相关问答
更多-
目标 正如我所看到的,你在这种情况下的目标是双重的: 创建和维护每个数据库的单个/可重用连接 确保连接已正确设置 解 我建议使用匿名功能和工厂模式来处理PDO连接。 使用它将如下所示: $provider = function() { $instance = new PDO('mysql:......;charset=utf8', 'username', 'password'); $instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_ ...
-
Ajax和PDO准备了请求(Ajax and PDO prepared requests)[2021-01-11]
不,你不能在调用之间使用预准备语句。 不,为了在不同的请求中运行相同的查询,这不值得也不必要。 但是,您应该使用预准备语句以使您的查询格式正确 。 因此,每次调用页面时都要创建另一个PDO对象,并使用预准备语句来运行查询。 No, you can't use prepared statement between calls. No, it is not worth nor necessary in order to run the same query across different requests. ... -
PDO数据库抽象层,在一个请求中包含多个查询(PDO Database Abstraction Layer with multiple queries in one request)[2023-06-03]
不要让它成为有状态的。 即使不查看代码,我也会告诉你问题是什么:摆脱$this->stmt变量。 出于某种原因,所有DBAL编写者都倾向于使用这样一个变量......将状态引入他们的类并因此使其无法使用。 所有方法调用都必须是原子的 ,每个方法都执行所有必要的操作并返回所有请求的数据。 虽然在类变量中没有保存任何内容。 就如此容易。 在极少数情况下,必须进一步使用PDOStatement对象 - 返回此对象,不要将其保存在内部。 否则只返回请求的数据。 我还建议摆脱你的整个DBAL,因为它是出于良好的意图, ... -
我终于找到了解决方案,首先我做了一个errCode的var_dump(在sry之前不知道这个函数) var_dump($req->errorCode()); 他返回错误代码:42S02 所以对于修复,只需添加一个简单的解决方案 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 谢谢你的帮助 I finally find the solution, first i make a var_dump of the errCode (d ...
-
如果您使用准备好的语句(您可以使用它们进行简单选择),如下所示: $uresult = $pdo->prepare("SELECT Name FROM City"); 那么你可以在uresult上设置属性: $uresult->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false); 然后你执行准备好的声明: $uresult->execute(); if ($uresult) { while ($row = $uresult->fetch( ...
-
解析错误:语法错误,第98行的.... \ index.php中出现意外的T_AS T_AS是PHP解释器中的标记。 试图解析代码的语法时,这是意料之外的。 as它只在foreach循环中有效,并且您正在使用一段while 。 改变你的while循环到一个foreach循环。 更新 致命错误:在第113行的index.php中调用未定义的方法PDO :: fetch() 这是一个运行时错误 - PDO对象没有称为fetch()方法。 你在正确的对象上调用fetch()吗? 查看文档 。 正如Wrikken在 ...
-
您在execute函数上缺少结束括号。 应该: $query->execute(array(':order_id'=>$orderId, ':last_attempt'=>1332849904)); 您需要删除SET关键字。 它适用于UPDATE语句,而不是INSERT语句。 You are missing an end parenthesis on your execute function. Should be: $query->execute(array(':order_id'=>$orderId, ...
-
使用MySQL驱动程序的PHP PDO不起作用 - 可能是我的代码吗?(PHP PDO using MySQL driver doesn't work - MAy be my code?)[2023-11-11]
根据http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html上的列表 - KEY是一个保留的mysql关键字。 所以你需要用反引号来引用它以获得有效的mysql查询 $query = 'SELECT `key` FROM turl WHERE `key` = "'.$k.'"'; 下一页:由于您正在使用PDO - 占位符是在查询中插入动态值的更首选方式: $stmt = $db->prepare('SELECT `key` FROM turl ... -
SQL Server中存在错误会自动回滚您的事务,并且在此之后尝试回滚是错误的。 代替 $conn->rollback(); 尝试执行批处理 if @@trancount>0 rollback; 我不知道PHP,但可能是这样的: $conn->prepare("if @@trancount>0 rollback;")->execute(); There are errors in SQL Server which will automatically roll back your transactio ...
-
PDO和PHP / MySQL:PDO编写的语句有什么问题?(PDO and PHP/MySQL: what is the heck is wrong with PDO's prepared statements?)[2023-12-30]
是否有可能为命名参数提供的值之一包含问号? 我遇到了一个问题,但那是很久以前的事了。 (我当然希望他们现在能解决这个问题。) 在我有限的经验中,PDO对“命名参数”的支持有些粗略。 首先,您不能在语句的多个位置使用相同的命名参数,每个命名参数的占位符名称必须是唯一的,并且只能使用一次。 这就是命名论证的一大好处。 我相信我在问号中遇到的问题是一个值,并且无法多次引用一个命名参数(我还没有证实这一点)是由于PDO“命名参数”支持是一个螺栓固定的事后想法支持位置论证; 实质上,看起来“命名参数”被转换为位置参数 ...