从表中按顺序获取一些所需的行

时间:2018-12-27 05:09:42

标签: php mysql phpmyadmin

我正在为一个页面显示数据库中的表格。假设我有100行。如何显示第21-30行?

在表中,有一些字段,不仅是电子邮件,名称和描述。因此,我使用了mysqli_fetch_assoc

for($num=21;$num<=30;$num++){
  $row=mysqli_fetch_assoc($result);
  echo "<tr>";
  echo "<td>".$num."</td>";
  echo "<td>".$row['email']."</td>";
  echo "<td>".$row['name']."</td>";
  echo "<td>".$row['description']."</td>";
  echo "</tr>";
}

$num显示了所需的数字,但表本身显示了1日至10日的数据。我希望它显示21日至30日的数据

3 个答案:

答案 0 :(得分:0)

您已经可以使用sql查询(为了提高性能)修复代码(添加LIMIT 20、10(从第21行开始获取10条记录))

但是如果您要在代码上应用其他逻辑(例如显示动态记录)

$row=mysqli_fetch_assoc($result);
for($num=0; $num<=$result->num_rows; $num++) {
    if($num>=21 && $num<=30){
        echo "<tr>";
        echo "<td>".$num."</td>";
        echo "<td>".$row['email']."</td>";
        echo "<td>".$row['name']."</td>";
        echo "<td>".$row['description']."</td>";
        echo "</tr>";
    }
}

您可能考虑使用的其他方法是foreach

$row=mysqli_fetch_assoc($result);
$num = 0;
foreach (range(21, 30) as $row) {
    $num++;

    echo "<tr>";
    echo "<td>".$num."</td>";
    echo "<td>".$row['email']."</td>";
    echo "<td>".$row['name']."</td>";
    echo "<td>".$row['description']."</td>";
    echo "</tr>";
}

答案 1 :(得分:-1)

请尝试使用sql查询,其中您定义了行数限制,例如从行号开始到行号结束。我在下面写了一个SQL查询:

语法

SELECT column1, column2, ...
FROM table_name
LIMIT offset, count;

示例

 SELECT * from MYTABLE LIMIT 20,10;

答案 2 :(得分:-3)

您可以通过这种方式实现两种可能性

第一

SELECT * from MYTABLE LIMIT 20, 10

第二

// 0,1,2,3....19 19 is record of 20
for($num=19;$num<=29;$num++){

 }