Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 页面中的行数有限_Php_Javascript_Sql_Css - Fatal编程技术网

Php 页面中的行数有限

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

嗨,我正在从数据库中检索数据 我的数据是(pic&name),当我检索它们时,我将它们放在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>


'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中选择*