基本上,我想通过使用@rownum显示表中的行数以及数据,它在第一页上很好用,但是当我们转到下一页时,它又从第一行开始。
查询代码:
$sql = "SELECT @rownum:=@rownum+1 as rownum, t.*FROM (SELECT @rownum:=0) r, (select * from tbl) t LIMIT $Page_Start , $Per_Page";
分页代码:
$objConnect = mysql_connect("localhost","user","pass") or die("Error Connect to Database"); `enter code here`$objDB = mysql_select_db("WEB"); $strSQL = "SELECT * FROM line "; $objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]"); $Num_Rows = mysql_num_rows($objQuery); $Per_Page = 2; // Per Page $Page = mysql_real_escape_string($_GET["Page"]); if(!$_GET["Page"]) { $Page=1; } $Prev_Page = $Page-1; $Next_Page = $Page+1; $Page_Start = (($Per_Page*$Page)-$Per_Page); if($Num_Rows<=$Per_Page) { $Num_Pages =1; } else if(($Num_Rows % $Per_Page)==0) { $Num_Pages =($Num_Rows/$Per_Page) ; } else { $Num_Pages =($Num_Rows/$Per_Page)+1; $Num_Pages = (int)$Num_Pages; }
分页用法:
if($Prev_Page) { echo "<a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'> Back</a>   "; } if($Page!=$Num_Pages) { echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next</a> "; }
所以我希望行数在页面示例后不断增加,例如第1页的第1-5行和第2页的应该是6-10之类的东西
非常感谢
您需要将计算结果包装起来,以在子查询中获取行号,并将其限制在外部SELECT语句中,以便row_number不会中断,例如,
SELECT
列名和表名可能与上面的示例不同,但查询的思想是相同的。
SELECT RowNumber, Student_ID, Student_Name FROM ( SELECT @rownum := @rownum + 1 RowNumber, t.* FROM student t, (SELECT @rownum := 0) s ORDER BY t.Student_ID ) subQ // LIMIT 0, 3