我正在为一个页面显示数据库中的表格。假设我有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日的数据
答案 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++){
}