Php 无法浏览mysql查询结果

Php 无法浏览mysql查询结果,php,mysql,Php,Mysql,有人能帮我解决在返回的记录中导航的问题吗?我有一个mysql查询: if(isset($_GET['record'])) { $record_current = $_GET['record']; }else{ $record_current = 1; } $useremail = $_SESSION['useremail']; $view_sql = "SELECT * FROM missions, calendar, bookings WHERE missions.missions_id

有人能帮我解决在返回的记录中导航的问题吗?我有一个mysql查询:

if(isset($_GET['record'])) {
$record_current = $_GET['record'];
}else{
$record_current = 1;
}

$useremail = $_SESSION['useremail'];

$view_sql = "SELECT * FROM missions, calendar, bookings 
WHERE missions.missions_id =  calendar.missions_id 
AND calendar.calendar_id = bookings.calendar_id 
AND bookings.booking_email ='$useremail' LIMIT $record_current,1";

$view_result = mysql_query($view_sql) or die(mysql_error());
$view_count = mysql_num_rows($view_result);
$rsView = mysql_fetch_assoc($view_result);
查询生成所需的结果。这些值用于填充动态表单。我遇到的问题是正确地浏览记录。我将此代码用于导航(允许用户查看他们所做的所有预订)。守则:

<span class="label"><?php if($record_current > 1) { ?><a href="view.php?record=<?php echo $record_current - 1; ?>" >Previous</a><?php } ?></span>
<span class="element"><?php if($record_current < $view_result) { ?><a href="view.php?record=<?php echo $record_current + 1; ?>" >Next</a><?php } ?></span>
显然,“SELECT FOUND_ROWS”返回一个从零开始的集合。这是现在的工作。 感谢所有做出贡献的人。 干杯,土豆您的
下一行
中的
if()
错误,因为您正在对照查询检查
$record\u current
$view\u result
而不是行数-
$view\u count
。试着换成-

if($record_current < $view_count)
您的
下一行
中的
if()
是错误的,因为您正在对照查询检查
$record\u current
$view\u result
而不是行数-
$view\u count
。试着换成-

if($record_current < $view_count)
注意:在获取当前的
限制$record\u时,1
应提醒计算机 每个计数从零开始,因此如果您试图获取第一个数据,您必须 将
$record\u current
的初始值设置为0

注意:在获取
限制$record\u current时,1
会提醒计算机 每个计数从零开始,因此如果您试图获取第一个数据,您必须 将
$record\u current
的初始值设置为0

问题是要显示的第一条记录实际上是 查询中的第二条记录

请注意,使用“限制”时,第一行的偏移量将始终为0而不是1

问题是要显示的第一条记录实际上是 查询中的第二条记录


请注意,当您使用LIMIT时,第一行的偏移量将始终为0而不是1…

您使用的是过时的
mysql\u*
api,它在新版本的php>=5.5中不再维护和弃用,因此使用pdo或mysqli请检查,您的代码中有很好的SQL注入漏洞,因此不必担心您的数据库是否存在漏洞paw3edI知道它已被弃用。这是我在科技大学学习的一门课程的练习,永远不会用于生产。我已经和老师谈过关于教授旧技术的问题,但这就是课程内容,我必须与之合作。为肖恩为我指引了正确的方向而干杯。干杯,伙计,你正在使用过时的
mysql\u*
api,它在新版本的php>=5.5中不再被维护和弃用,因此请使用pdo或mysqli检查,你的代码中有很好的SQL注入漏洞,所以不要担心你的数据库是paw3edI,我知道它弃用了。这是我在科技大学学习的一门课程的练习,永远不会用于生产。我已经和老师谈过关于教授旧技术的问题,但这就是课程内容,我必须与之合作。为肖恩为我指引了正确的方向而干杯。干杯,mateHi,这只在URL中记录=0时有效,因为由于查询中的限制,$view\u计数始终为1。我一直在尝试不同的事情,但都没有成功。我想知道我的查询结构是否正确。我对这个很陌生,只是不知道。有没有一种方法可以得到限制之前的记录总数,并将其放入一个变量中?我没有想到这一点。我已经更新了我的答案,通过使用Thank@Sean获得了总行数,你指引了我正确的方向。看看最初的问题,看看我是如何做到的。当然,这只适用于URL中的record=0的情况,因为由于查询中的限制,$view\u count始终为1。我一直在尝试不同的事情,但都没有成功。我想知道我的查询结构是否正确。我对这个很陌生,只是不知道。有没有一种方法可以得到限制之前的记录总数,并将其放入一个变量中?我没有想到这一点。我已经更新了我的答案,通过使用Thank@Sean获得了总行数,你指引了我正确的方向。看看最初的问题,看看我是如何做到的。干杯,谢谢。我在想。我已经想出了一个混乱的修复方法,无限制地复制查询并从中计算行数,然后使$count=(总行数-1)停止在最后一条记录上显示“Next”链接。这是相当混乱,但“工作”后,一种时尚。我认为有一种更干净的方法来解决这个问题,但这超出了我目前的知识范围。干杯,谢谢。我在想。我已经想出了一个混乱的修复方法,无限制地复制查询并从中计算行数,然后使$count=(总行数-1)停止在最后一条记录上显示“Next”链接。这是相当混乱,但“工作”后,一种时尚。我认为有一种更干净的方法来解决这个问题,但这超出了我目前的知识范围。干杯谢谢你。我以为是这样的。我想纠正的主要问题是,在查看最后一张唱片时,它仍然显示“下一个”链接。干杯谢谢你。我以为是这样的。我想纠正的主要问题是,在查看最后一张唱片时,它仍然显示“下一个”链接。干杯
$view_sql = "SELECT SQL_CALC_FOUND_ROWS * FROM missions, calendar, bookings 
WHERE missions.missions_id =  calendar.missions_id 
AND calendar.calendar_id = bookings.calendar_id 
AND bookings.booking_email ='$useremail' LIMIT $record_current,1";

$view_result = mysql_query($view_sql) or die(mysql_error());
$view_count = mysql_query("SELECT FOUND_ROWS()");
$rsView = mysql_fetch_assoc($view_result);
if(isset($_GET['record'])) {
$record_current = $_GET['record'];
}else{
$record_current = 1;
}

$view_sql = "SELECT * FROM missions, calendar, bookings 
WHERE missions.missions_id =  calendar.missions_id 
AND calendar.calendar_id = bookings.calendar_id 
AND bookings.booking_email ='$useremail' LIMIT $record_current,1";