嗨我正在尝试对一个php mysql数据库进行分页,我无法弄清楚是什么让结果转移到下一页,它停留在记录行0,我怎么改变才能进入下一个一组结果?这是链接到导航链接的偏移量,它必须回忆一个mysql查询?这是怎么回事?
//pagination
//find out how many rows are in the table
$sql = "SELECT * FROM hotels_database";
$result = mysql_query($sql, $con) or trigger_error("SQL", E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];
// number of rows to show per page
$rowsperpage = 2;
// find out total pages
$totalpages = ceil($numrows / $rowsperpage);
// get the current page or set a default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// cast var as int
$currentpage = preg_replace('#[^0-9]#i','', $_GET['currentpage']);
} else {
// default page num
$currentpage = 1;
} // end if
// if current page is greater than total pages...
if ($currentpage > $totalpages) {
// set current page to last page
$currentpage = $totalpages;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
// set current page to first page
$currentpage = 1;
} // end if
// the offset of the list, based on current page
$offset = ($currentpage - 1) * $rowsperpage;
// get the info from the db
$sql = "SELECT * FROM hotels_database LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $con) or trigger_error("SQL", E_USER_ERROR);
// while there are rows to be fetched...
while ($list = mysql_fetch_assoc($result)) {
// echo data
for ($stars=1;$stars<=floor($list['stars']);$stars++){
$star_string .= "<img src='images/star.jpg'/>";
}
if (($list['stars']-floor($list['stars']))> 0){
$star_string .= "<img src='images/half_star.jpg'/>";
}
$hotels_database .= "<div style='display:table-row;height:70px;'><div style='width:60px;height:60px;display:table-cell;float:left;'><img src='".$list['pic']."' width='60px'/></div>"."<div style='width:280px;display:table-cell;vertical-align:top;text-align:left;padding-left:5px;font-size:12px;'><a href='#' class='database_link'>".$list['hotel']."</a>".$star_string."<br/><span style='font-size:10px;'>".$list['addy']."</span><br/>Guest score: <span style='color:red;font-size:14px;'>".$list['score']."</span> out of 10"."<br/>"."<li class='database_arrow'>Display Amenities & More Info</li>"."</div>"."<div style='width:78px;height:60px;display:table-cell;vertical-align:top;'><span style='font-family:arial;color:green;font-size:15px;'>$".$list['price']."</span><br/>per night<div style='border-radius:10px;background-color:#1284d3;height:25px;width:70px;left:10px;top:10px;position:relative;border:1px black solid;color:white;font-family:arial;line-height:8px;'><br/>select</div><br/></div>"."</div><hr style='color:#c8ff78;'/>";
$star_string="";
} // end while
/****** build the pagination links ******/
// range of num links to show
//pagination
/*
是的,所以我无法弄清楚如何进入下一个偏移我在这种情况下使用的href?为什么当前页面查询字符串不显示在我的addy栏中?请看一下,
答案 0 :(得分:1)
正如D.N所说的代码会有所帮助,但总的来说它是
if(isset($_GET['offset']) {
$offset = $_get['offset'];
}
else{
$offset = 0;
}
然后在你添加的SQL调用中:
'what ever the call is' "limit $limit offset $offset"