如何在PHP中为从数据库获取的数据创建下一个、上一个链接?
我制作了一个从mysql数据库获取数据的页面。我希望每页只显示10个结果,使用“下一步”按钮显示其他结果,使用“上一步”按钮显示上一个结果 我使用以下代码获取数据:如何在PHP中为从数据库获取的数据创建下一个、上一个链接?,php,mysql,database,next,Php,Mysql,Database,Next,我制作了一个从mysql数据库获取数据的页面。我希望每页只显示10个结果,使用“下一步”按钮显示其他结果,使用“上一步”按钮显示上一个结果 我使用以下代码获取数据: $item=$_POST('item'); $query=mysql_query("select name,address,contact from info_tb where keyword='$item'"); while($row=mysql_fetch_array('$query')) { echo "Name : row
$item=$_POST('item');
$query=mysql_query("select name,address,contact from info_tb where keyword='$item'");
while($row=mysql_fetch_array('$query'))
{
echo "Name : row[0]":
echo "Address : row[1]":
echo "Contact : row[2]":
}
在mySQL查询中使用关键字
SELECT * FROM `your_table` LIMIT 0, 10
似乎你想浏览记录,所以
SELECT * FROM `your_table` LIMIT 5, 10
这些记录将显示在6、7、8、9、10、11、12、13、14、15中
如果要导航,需要控制此参数,如图所示
SELECT * FROM `your_table` LIMIT 5, 10
^
好像你最近发布了代码,在你的代码上尝试类似的东西
$item=$_POST['item'];
$page=$_POST['pno'];
$query=mysql_query("select name,address,contact from info_tb where keyword='$item' limit '$page',10");
在mySQL查询中使用关键字
SELECT * FROM `your_table` LIMIT 0, 10
似乎你想浏览记录,所以
SELECT * FROM `your_table` LIMIT 5, 10
这些记录将显示在6、7、8、9、10、11、12、13、14、15中
如果要导航,需要控制此参数,如图所示
SELECT * FROM `your_table` LIMIT 5, 10
^
好像你最近发布了代码,在你的代码上尝试类似的东西
$item=$_POST['item'];
$page=$_POST['pno'];
$query=mysql_query("select name,address,contact from info_tb where keyword='$item' limit '$page',10");
对于您的第一页,您必须从数据库中检索前10个结果,即1、2、3。。。9、10行:
SELECT * FROM `table` LIMIT 0, 10
然后把结果打印出来。
如果,假设用户在第4页,则必须从31、32、33中检索。。39、40排。在服务器脚本(如PHP)中计算偏移量和行数:
$page_no = 4;
$row_count = 10;
$offset = ($page_no - 1) * $row_count; // results 30
现在,您的SQL将是:
SELECT * FROM `table` LIMIT 30, 10;
所以你会有31,32,33。。。可以打印的行。
页码可以通过GET或POST参数检索。对于第一页,您必须从数据库检索前10个结果,即1、2、3。。。9、10行:
SELECT * FROM `table` LIMIT 0, 10
然后把结果打印出来。
如果,假设用户在第4页,则必须从31、32、33中检索。。39、40排。在服务器脚本(如PHP)中计算偏移量和行数:
$page_no = 4;
$row_count = 10;
$offset = ($page_no - 1) * $row_count; // results 30
现在,您的SQL将是:
SELECT * FROM `table` LIMIT 30, 10;
所以你会有31,32,33。。。可以打印的行。
页码可以通过GET或POST参数进行检索。当然,您可以打印出整个结果,并使用jQuery对其进行分页:
<!-- Download jquery and link locally. Directlinking to jQuery should only be used for testing purposes. -->
<script type='text/javascript' src='http://code.jquery.com/jquery-git2.js'></script>
<script type="text/javascript">
var pageno = 0;
var maxpageno = 0;
function show(){
if (pageno < 0) { pageno = 0}
if (pageno > maxpageno) { pageno = maxpageno}
$('#results tbody tr').hide();
$('#results tbody tr.page'+pageno).show();
}
</script>
<body onload="show();">
<?php
$sql = "SELECT * FROM books";
//result is boolean for query other than SELECT, SHOW, DESCRIBE and EXPLAIN
$result = $short_connect->query($sql);
if (($result) && ($result->num_rows > 0))
{
$results = array();
print "<table id=\"results\">\n<thead>\n<tr><th>id</th><th>title</th><th>isbn</th><th>ean</th><th>year</th></tr>\n
<tr><td colspan=5>
<a href=\"#null\" onclick=\"pageno = 0; show();\"><<</a>
<a href=\"#null\" onclick=\"pageno--; show();\"><</a>
<a href=\"#null\" onclick=\"pageno++; show();\">></a>
<a href=\"#null\" onclick=\"pageno = maxpageno; show();\">>></a>
</th></tr>\n
</thead>\n<tbody>\n"; //table starter and header
$i = 0; //start count
$ipp = 10; //items per page
while ($row = $result->fetch_array())
{
$rop = $i % $ipp; //result on page
$pno = floor($i / $ipp); //page number
$i++; //increase count
print "<tr class=\"page$pno\"><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td></tr>\n";
}
print "</tbody>\n<tfoot><tr><td colspan=5>
<a href=\"#null\" onclick=\"pageno = 0; show();\"><<</a>
<a href=\"#null\" onclick=\"pageno--; show();\"><</a>
<a href=\"#null\" onclick=\"pageno++; show();\">></a>
<a href=\"#null\" onclick=\"pageno = maxpageno; show();\">>></a>
</td></tr>\n</tfoot>\n</table>\n"; // footer
$result->free();
}
$short_connect->close();
print "<script type=\"text/javascript\"> maxpageno = $pno;</script>";
?>
</body>
var pageno=0;
var maxpageno=0;
函数show(){
如果(pageno<0){pageno=0}
如果(pageno>maxpageno){pageno=maxpageno}
$('#results tbody tr').hide();
$(“#results tbody tr.page”+pageno.show();
}
您当然可以打印出整个结果,并使用jQuery对其进行分页:
<!-- Download jquery and link locally. Directlinking to jQuery should only be used for testing purposes. -->
<script type='text/javascript' src='http://code.jquery.com/jquery-git2.js'></script>
<script type="text/javascript">
var pageno = 0;
var maxpageno = 0;
function show(){
if (pageno < 0) { pageno = 0}
if (pageno > maxpageno) { pageno = maxpageno}
$('#results tbody tr').hide();
$('#results tbody tr.page'+pageno).show();
}
</script>
<body onload="show();">
<?php
$sql = "SELECT * FROM books";
//result is boolean for query other than SELECT, SHOW, DESCRIBE and EXPLAIN
$result = $short_connect->query($sql);
if (($result) && ($result->num_rows > 0))
{
$results = array();
print "<table id=\"results\">\n<thead>\n<tr><th>id</th><th>title</th><th>isbn</th><th>ean</th><th>year</th></tr>\n
<tr><td colspan=5>
<a href=\"#null\" onclick=\"pageno = 0; show();\"><<</a>
<a href=\"#null\" onclick=\"pageno--; show();\"><</a>
<a href=\"#null\" onclick=\"pageno++; show();\">></a>
<a href=\"#null\" onclick=\"pageno = maxpageno; show();\">>></a>
</th></tr>\n
</thead>\n<tbody>\n"; //table starter and header
$i = 0; //start count
$ipp = 10; //items per page
while ($row = $result->fetch_array())
{
$rop = $i % $ipp; //result on page
$pno = floor($i / $ipp); //page number
$i++; //increase count
print "<tr class=\"page$pno\"><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td></tr>\n";
}
print "</tbody>\n<tfoot><tr><td colspan=5>
<a href=\"#null\" onclick=\"pageno = 0; show();\"><<</a>
<a href=\"#null\" onclick=\"pageno--; show();\"><</a>
<a href=\"#null\" onclick=\"pageno++; show();\">></a>
<a href=\"#null\" onclick=\"pageno = maxpageno; show();\">>></a>
</td></tr>\n</tfoot>\n</table>\n"; // footer
$result->free();
}
$short_connect->close();
print "<script type=\"text/javascript\"> maxpageno = $pno;</script>";
?>
</body>
var pageno=0;
var maxpageno=0;
函数show(){
如果(pageno<0){pageno=0}
如果(pageno>maxpageno){pageno=maxpageno}
$('#results tbody tr').hide();
$(“#results tbody tr.page”+pageno.show();
}
但他不是这样问的。他不想将查询结果限制在前10个匹配行。他希望每页显示10个结果,并使用“下一页”和“上一页”按钮翻阅它们。他希望其他人从头开始为他编写代码。如果你愿意,请告诉我逻辑。我已经为此尝试了很多方法。我们可以看出OP显然还不知道如何分页查询结果,因此这个答案很好。Thanx我会尝试这个。但这不是他问的问题。他不想将查询结果限制在前10个匹配行。他希望每页显示10个结果,并使用“下一页”和“上一页”按钮翻阅它们。他希望其他人从头开始为他编写代码。如果你愿意,请告诉我逻辑。我已经为此尝试了很多方法。我们可以看出OP显然还不知道如何分页查询结果,所以这个答案很好。Thanx我会试试这个。Thanx我认为这个肯定会帮助我。Thanx我认为这个肯定会帮助我。谢谢你的回答。谢谢你的回答。