0
很抱歉,如果这是一个愚蠢的问题,但我仍然在这一个新手位和学习,我有试错去。的MySQL/PHP分页问题 - 不会去第二页
我有以下分页脚本,但它确实在工作的时候点击“下一页”不显示最后2种产品的下一个页面上。它只是停留在第一页上与原来的3
- 总数据库记录5
限制设置为3每页(用于测试目的)
<?php $dbhost = '*******'; $dbuser = '*******'; $dbpass = '*******'; $rec_limit = 3; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn) { die('Could not connect: ' . mysql_error()); } mysql_select_db('********'); /* Get total number of records */ $sql = "SELECT count(id) FROM products "; $retval = mysql_query($sql, $conn); if(! $retval) { die('Could not get data: ' . mysql_error()); } $row = mysql_fetch_array($retval, MYSQL_NUM); $rec_count = $row[0]; if(isset($_GET{'page'})) { $page = $_GET{'page'} + 1; $offset = $rec_limit * $page ; }else { $page = 0; $offset = 0; } $left_rec = $rec_count - ($page * $rec_limit); $sql = "SELECT id, name, description, price ". "FROM products ". "LIMIT $offset, $rec_limit"; $retval = mysql_query($sql, $conn); if(! $retval) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Product :{$row['name']} <br> ". "Description : {$row['description']} <br> ". "Price : {$row['price']} <br> ". "--------------------------------<br>"; } if($page > 0) { $last = $page - 2; echo "<a href = \"$_PHP_SELF?page = $last\">Previous Page</a> |"; echo "<a href = \"$_PHP_SELF?page = $page\">Next Page</a>"; }else if($page == 0) { echo "<a href = \"$_PHP_SELF?page = $page\">Next Page</a>"; }else if($left_rec < $rec_limit) { $last = $page - 2; echo "<a href = \"$_PHP_SELF?page = $last\">Last Page</a>"; } mysql_close($conn); ?>
( 1)MySQL语法说:第一个是LIMIT,第二个是OFFSET。看看程序中使用的变量,似乎它们的位置是互换的。 (2)当您在新页面时,'$ offset'似乎没有改变。 (3)一旦你的逻辑正确,请考虑切换到'mysqli_'或'PDO'准备查询立即编写不容易受到SQL注入攻击的脚本。 –