0

嗨,我正在从数据库中检索我的数据,当我检索它们时,我的数据是(图片和名称)我将它们放在 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>
4

2 回答 2

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 页输出的一组结果。

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

于 2013-05-09T20:02:44.873 回答
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

于 2013-05-09T20:15:52.403 回答