根据行数在mysql中分割查询结果

时间:2015-07-01 15:21:12

标签: mysql

我需要一种方法来显示十分之十的结果,但我不知道如何?对于此表中的意见。

+---------+----------+--------+
|  place  | address  |  time  |
+---------+----------+--------+
|  place1 | address1 |  3:00  |
|  place2 | address2 |  5:00  |
|    .    |     .    |    .   |
|    .    |     .    |    .   |
|    .    |     .    |    .   |
|    .    |     .    |    .   |
+---------+----------+--------+

我知道不适合这样的表,但它只是作为例子

2 个答案:

答案 0 :(得分:1)

要显示10个结果,您可以在选择结束时使用LIMIT

SELECT *
FROM myTable
ORDER BY address
LIMIT 10;

如果你想在那之后展示接下来的10个,你可以像LIMIT offset, count那样添加偏移:

SELECT *
FROM myTable
ORDER BY address
LIMIT 10, 10;

第三组将是LIMIT 20, 10,依此类推。这是一个SQL Fiddle示例。

请注意,如果您需要动态内容,此处的模式是nth组始终拥有LIMIT (10 * (n - 1)), 10

答案 1 :(得分:0)

<?php
$sql = "SELECT * FROM tablename";
$query_count=mysql_query($sql);

$per_page =10;//define how many record for a page
$count = mysql_num_rows($query_count);

$pages = ceil($count/$per_page);

if($_GET['page']==""){
      $page="1";
}else{
      $page=$_GET['page'];
}

$start    = ($page - 1) * $per_page;
$sql     = $sql." LIMIT $start,$per_page";
$query2= mysql_query($sql);
?>

<ul id="pagination">
<?php for ($i = 1; $i <= $pages; $i++){ ?>
<li id="<?php echo $i;?>"><a href="linktoyourfile?c=<?php echo $c;?>&page=<?php echo $i;?>"><?php echo $i;?></a></li>
<?php  } ?>
</ul>

<table>
  <tr><th>place</th><th>address</th><th>time</th><tr>
   <?php while($row = mysql_fetch_array($query2, MYSQL_ASSOC)){
       echo "<tr><td>".$row['place'] ."</td>"."<td>".$row['address'] ."</td>"."<td>".$row['time'] ."</td></tr>";
} ?>
</table>

使用上面的代码进行分页