Php 页面中的行数有限
嗨,我正在从数据库中检索数据 我的数据是(pic&name),当我检索它们时,我将它们放在4列中 现在我想限制每页的行数,我想每页只显示三行 如果有更多的数据,我想让它显示在下一页 我的代码:Php 页面中的行数有限,php,javascript,sql,css,Php,Javascript,Sql,Css,嗨,我正在从数据库中检索数据 我的数据是(pic&name),当我检索它们时,我将它们放在4列中 现在我想限制每页的行数,我想每页只显示三行 如果有更多的数据,我想让它显示在下一页 我的代码: <?php $items_in_row = 4 ; $index = 0 ; ?> <table> <tr> <?php while ($row = mysql_fetch_array( $result , MYSQL_ASSOC)){ $i
<?php
$items_in_row = 4 ;
$index = 0 ;
?>
<table>
<tr>
<?php
while ($row = mysql_fetch_array( $result , MYSQL_ASSOC)){
$index++ ; ?>
<td>
<p>
<img id='g1' src='/<?php echo $row["img"] ;?>' width=130 height=130 onClick='f1()'>
</p>
<p> Name: <?php echo $row['name'] ; ?> </p>
<br>
</td>
<?php if ($index%$items_in_row == 0){ ?>
</tr>
<tr>
<?php }
} ?>
</tr>
</table>
'width=130 height=130 onClick='f1()'>
姓名:
一种方法是在SQL中使用LIMIT()函数,传入存储在PHP会话中的变量。假设你想要3行,每页4张图片,然后你想要12张图片。所以你做了一些类似的事情
select * from pictures LIMIT(0,12)
这将返回前12项
您只需跟踪页码就可以做到这一点。也许您的PHP中有一个$page变量。如果您在第2页,$页包含2。用它来构造一个动态SQL查询,你的PHP可能会这样
$sqlQueryStatement = "select * from pictures LIMIT(". ($page-1)*12 . ", 12)";
对于第2页,它会生成sql语句:
select * from pictures LIMIT(12,12)
看到了吗?现在,您执行了该SQL,并获得了应该为第2页输出的结果集
您可以使用一些进一步的逻辑来获取这些基本概念并使用它们运行…将它们扩展到诸如在结果底部创建可单击的页码等用途。我使用以下算法开发分页作业: …1)选择结果
$page = 1; // what page to show, if you dont know 1 is default.
$maxthingsperpage = 5; // how many things (etc. what you show) per page
$offset = ($page * $maxthingsperpage) - $maxthingsperpage; // db id to start reading
$result = mysql_query("SELECT * FROM things LIMIT ".$offset.",".$maxthingsperpage);
…2)将内容显示到页面中
$numrows = mysql_num_rows($result);
$numthingstodisplay = ($numrows > $maxthingsperpage ? $maxthingsperpage : $numrows);
while ($row = mysql_fetch_array( $result , MYSQL_ASSOC)) {
... display here without worrying about when to break; num rows are exact
}
您可以将
$maxthingsperpage
替换为行中的$items\
分页-在SO:@PeeHaa上分页埽 打得好,先生。。。好的,我尝试了你的方法,但是我得到了这个错误消息警告:mysql\u num\u rows()期望参数1是资源,第103行给出的布尔值,第103行是$numrows=mysql\u num\u rows($result);您确定查询成功吗?我不知道你真正的查询参数,但是做一些错误检查,比如if(!$result){echo mysql_error()}
你能告诉我应该把这个代码放在我的代码中的什么地方吗?结果的选择(1)
必须放在你有$items\u in_row=4;的地方代码>代码。结果的显示必须替换您的while(){..}
。这也意味着您必须
删除(或注释掉)我看不到的原始“选择..”查询..我尝试了从图片限制12中选择*,但问题是它给了我页面中的前12张图片,但我需要在其他页面中显示其余图片,我的意思是,如果我有12张图片,这很好,它们会显示在第一页,但如果我有24张图片,我需要2页,如果我有27张图片,我需要3页,依此类推,但实际上我有14张图片,但我只有1页有前12张图片。限制的方式是你通过你想首先开始的地方,然后是你想要的号码。因此,如果您确实从图片限制(12,12)中选择了*,您将得到12张图片,从结果12开始。好吧,当我将从图片限制(12,12)中选择*时,我得到了一个错误,所以我将其替换为从图片限制12中选择*