如何将表格行分成2并显示到页面

时间:2017-05-26 07:55:39

标签: php html css mysql

我的数据库中有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;

这是我用来从我的数据库中获取数据的查询。 enter image description here 这是我想要实现但我只能得到第一页,我不知道如何显示剩余的数组...我尝试使用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将这些数据分成数组数据的原因。

3 个答案:

答案 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);