假设我有3条ID为2,4,7,9的相同用户的记录,我希望能够通过下一个/上一个链接导航从一个到另一个。问题是,我不知道如何通过链接重定向到同一页面来获取每页1条记录。
所以当我有ID 4的记录时,如果我点击之前它必须将我重定向到同一页面,记录有ID 2,如果我点击下一步它应该带我到7.请帮助重定向并显示一个记录页。
到目前为止,我已经完成了:
<?php
$query1 = "SELECT * FROM table2 WHERE id='{$user}' order by srno desc " ;
$result1=mysql_query($query1,$con);
if (!($result1) )
{
die('Error: ' . mysql_error($con));
}
else
{
$values1= mysql_fetch_array($result1);
}
mysql_close($con);
?>
我是否需要将查询更改为:
$ query1 =&#34; SELECT * FROM table2 WHERE id =&#39; {$ user}&#39;由srno desc命令LIMIT 1 OFFSET 1&#34; ;
答案 0 :(得分:1)
我会为prev/next
个链接使用这样的内容......
html
<a href="?action=prev&id=<?php echo $values['id'] ?>">prev</a>
<a href="?action=next&id=<?php echo $values['id'] ?>">next</a>
php
<?php
if(!is_numeric($_GET['id'] || $_GET['id'] < 1)
throw new \Exception('Illegal id value');
if(!isset($_GET['action']))
$_GET['action'] = 'view';
switch($_GET['action']){
case 'prev':
$q = "SELECT * FROM table2 WHERE id<'{$_GET['id']}' ORDER BY id DESC LIMIT 1" ;
break;
case 'next':
$q = "SELECT * FROM table2 WHERE id>'{$_GET['id']}' ORDER BY id ASC LIMIT 1" ;
break;
case 'view':
$q = "SELECT * FROM table2 WHERE id='{$_GET['id']}'";
break;
default:
throw new \Exception('Illegal action value');
}
$result1=mysql_query($query1,$con);
if (!($result1) )
{
die('Error: ' . mysql_error($con));
}
else
{
$values1= mysql_fetch_array($result1);
}
mysql_close($con);
我不明白srno
是什么,以及你是如何在user id
var中获得$user
的,所以我把它们排除了。代码应该是功能性的,一旦你理解它,你可以用它来重写你自己的代码。
答案 1 :(得分:0)
如果您每页显示一条记录,则可以简单地使用分页。您可以从http://www.tutorialspoint.com/php/mysql_paging_php.htm
获取分页示例