页面中的行数有限

时间:2013-05-09 19:50:49

标签: php javascript sql css

您好我正在从DB中检索我的数据 我的数据是(图片和名称),当我检索它们时,我将它们放在4列中 现在我想限制每个页面中的行数,我希望每个页面只显示三行 如果有更多数据我想让它显示在下一页

我的代码:

    <?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>

2 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是在SQL中使用LIMIT()函数,传入您在PHP中存储在会话中的变量。假设你想在每页上有3行4张图片,那么你想要12张图片。所以你做了像

这样的事情
select * from pictures LIMIT(0,12)

这将返回前12项。

您只需跟踪页码即可。也许你的PHP中有一个$ page变量。如果你在第2页,$ page包含2.使用它来构建一个PHP的动态SQL查询可能就像这样......

$sqlQueryStatement = "select * from pictures LIMIT(". ($page-1)*12 . ", 12)";

这对于第2页来说是什么,它产生了sql语句:

select * from pictures LIMIT(12,12)

看看它是如何工作的?现在您执行该SQL,并且您具有应该为第2页输出的结果集。

你可以使用一些进一步的逻辑来获取这些基本概念并与它们一起运行......将它们扩展到诸如在结果底部创建可点击分页数字等用途。

答案 1 :(得分:0)

我使用以下算法开发我的分页作业:

... 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_in_row