我的数据库中有20个数组数据,我决定把它放到一个表中,以便在我的页面上显示它。
<tbody>
<?php for ($n=0; $n < 10; $n++) { ?>
<tr>
<td><?php echo $n+1;
$prescription_array=explode('/',$new_array2[$n]);
?>
</td>
<td><?php
for ($i=0; $i < 10; $i++) {
echo "<font size='5'>".$prescription_array[$i]."</font>";
$x++;
}
?>
</td>
</tr>
<?php }?>
</tbody>
我使用for循环限制正在显示的数据,如果我在打印数据时显示所有数据,它重叠在我的页眉和页脚上..所以我的问题是如何将剩余数据显示到下一页..我找不到更好的解决方案。
$sql = "SELECT prescriptions FROM tblprescriptions WHERE `ID`='$ID' AND `appID`='$appID' ";
$query = $this->dbh->prepare($sql);
$query->execute();
if($row = $query->fetch(PDO::FETCH_ASSOC)){
$prescriptions = $row['prescriptions'];
}
return @$prescriptions;
这是我用来从我的数据库中获取数据的查询。 这是我想要实现但我只能得到第一页,我不知道如何显示剩余的数组...我尝试使用thead和tfoot显示页眉和页脚的差异方法,但没有运气..我正在使用铬;关于如何显示剩余数据的任何想法?...
amen (amen) 50mg -- 20pcs. -- 5x per day -- morning noon and evening -- 5 days1/, yes (yes) 50mg -|- #50 -|- 5x per day -|- morning noon and evening -|- 10 days/, 51 (51) 51mg | #51 | 5x per week | morning noon and evening | 10 days/, bio (gesic) || 50mg || #50 || 5x per week || morning noon and evening || 10 days/, biogesic (paracetamol) | | 250mg | | #20 | | 5x per week | | morning noon and evening | | 14 days/, mefenamic (paracetamol)_100mg_#10_3x per week_morning noon and evening_10 days/, biogesic (paracetamol) = 250mg = #20 = 5x per week = morning noon and evening = 14 days/, bio (tamol) :: 50mg :: #50 :: 5x per week :: morning noon and evening :: 14 days/, bio (tamol) \ 50mg \ #50 \ 5x per week \ morning noon and evening \ 14 days/, bio (tamol) + 50mg + #50 + 5x per week + morning noon and evening + 14 days/, amen (amen) 50mg -- 20pcs. -- 5x per day -- morning noon and evening -- 5 days1/, yes (yes) 50mg -|- #50 -|- 5x per day -|- morning noon and evening -|- 10 days/, 51 (51) 51mg | #51 | 5x per week | morning noon and evening | 10 days/, bio (gesic) || 50mg || #50 || 5x per week || morning noon and evening || 10 days/, biogesic (paracetamol) | | 250mg | | #20 | | 5x per week | | morning noon and evening | | 14 days/, mefenamic (paracetamol)_100mg_#10_3x per week_morning noon and evening_10 days/, biogesic (paracetamol) = 250mg = #20 = 5x per week = morning noon and evening = 14 days/, bio (tamol) :: 50mg :: #50 :: 5x per week :: morning noon and evening :: 14 days/, bio (tamol) \ 50mg \ #50 \ 5x per week \ morning noon and evening \ 14 days/, bio (tamol) + 50mg + #50 + 5x per week + morning noon and evening + 14 days/,
这是从我的数据库返回的示例数据..这就是我使用explode将这些数据分成数组数据的原因。
答案 0 :(得分:1)
您在数据库中有20
条记录,您希望page 1
显示从第一条记录到第十条记录,page 2
显示从第十一条记录到第二十条记录。
使用page 1
,您可以添加SQL LIMIT 0, 10
。
使用page 2
,您可以添加SQL LIMIT 10, 10
。
您可以了解以下内容:LIMIT $start, $limit
$start
是数据库中的起始位置
$limit
是您要检索的记录数
所以,我的例子是你在URL上传递page
参数。您需要page
来计算
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
if ($page < 1) $page = 1;
现在,您将计算$start
$limit = 10;
$start = ($page - 1) * $limit;
所以,你有SQL:
$sql = "SELECT prescriptions FROM tblprescriptions WHERE `ID`='{$ID}' AND `appID`='{$appID}' LIMIT {$start}, {$limit}";
好看的
答案 1 :(得分:0)
我在查询语句中使用LIMIT来获取每页所需的行数。 https://dev.mysql.com/doc/refman/5.7/en/select.html&lt; - 见LIMIT条款。
添加额外信息:
假设您可以在页面中显示10行,并且在BD表格中有20行。您需要以收集第一页表格的前10行的方式对逻辑进行编码:
SELECT * FROM table WHERE [filtering here] LIMIT 0, 10
然后是第二页:
SELECT * FROM table WHERE [filtering here] LIMIT 11, 10
依此类推更多页面。有关详细信息,请参阅Ken先生的答案。
答案 2 :(得分:0)
您可以使用array_slice()来实现结果。
$arr1 = array_slice($prescriptions,0,10);
$arr2 = array_slice($prescriptions,10,20);