我想查询图像 url 数据库,然后使用 php 显示它们。到目前为止,我还没有找到任何不使用 javascript 的示例(不想使用,因为它加载同一页面上的所有图像,并且 javascript 控制您所看到的内容)。
其他分页示例只是不允许您输出这样的结果......
image1 image2 image3 image4 image5
image6 image7 image8 image9 image10
1 2 3 4 5 Next
...无需通过 php 取消分页,也不必对分页进行硬编码。这没有多大意义,因为在任何给定时间图像可能或多或少。
有人知道这是否可行吗?
例如...
在此脚本中,循环只能控制每页显示的记录数。我需要能够在输出指定数量的记录后打破 td。
<?php
require_once'connect.php';
$query = $db->query("SELECT COUNT(id) FROM table");
$rows = $query->fetchColumn();
$items_per_page = 25;
$last_page = $rows/$items_per_page;
if(isset($_GET['p']) && ctype_digit($_GET['p']) && $_GET['p'] > 0) {
$page = $_GET['p'];
}
else {
$page = '1';
}
if($page > $last_page) {
$page = $last_page;
}
$page_controls = '<p class="page_controls">';
$start = ($page -1) * $items_per_page;
if($items_per_page > $rows) {
$page_controls .= '<span>1</span>';
}
else {
if($page > 1) {
$prev = $page - 1;
$page_controls .= '<a href="?p='. $prev .'">Prev</a>';
for($i = ($page - 3); $i < $page; $i++) {
if($i > 0) {
$page_controls .= '<a href="?p=' . $i .'">' . $i . '</a>';
}
}
}
$page_controls .= '<span>'. $page .'</span>';
if($page < $last_page) {
for($i = $page+1; $i <= $last_page; $i++) {
$page_controls .= '<a href="?p=' . $i . '">' . $i . '</a>';
if($i >= $page+3) {
break;
}
}
$next = $page + 1;
$page_controls .= '<a href="?p=' . $next . '">Next</a>';
}
}
$page_controls .= '</p>';
$query = $db->prepare("SELECT * FROM table limit ?, ?");
$query->bindParam(1, $start, PDO::PARAM_INT);
$query->bindParam(2, $items_per_page, PDO::PARAM_INT);
$query->execute();
echo '<table>';
$cols = 5;
foreach($query->fetchAll(PDO::FETCH_ASSOC) as $data) {
echo '<tr>
<td><a href="' . $data['url'] . '"><img src="' . $data['image_url'] . '" width=200 height=100></a></td>
</tr>';
}
echo '</table>';
echo $page_controls;
?>
最佳答案
有人之前发布了一个解决方案,但后来删除了它,所以我无法给予适当的信任。然而,这里经过一个小修改就完成了我的问题......
echo '<table>';
$cols = 5;
foreach($query->fetchAll(PDO::FETCH_ASSOC) as $cnt => $data) {
if ( $cnt % $cols == 0 ) {
echo '<tr>';
}
echo '<td><a href="<' . $data['url'] . '"><img src="' . $data['image_url'] . '"></a></td>
';
if ( $cnt % $cols == 5 ) {
echo '</tr>';
}
$cnt++;
}
echo '</table>';
总的来说,我同意最好使用 CSS 来控制图像的布局。如果您愿意,那么前面的代码是最好的。
关于php - 是否可以使用 PHP PDO 将 Mysql 查询结果分页为每页 5 x 5 网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38847935/